El módulo de subprocesos en Python permite que tu programa cree y controle nuevos procesos. Proporciona la capacidad de iniciar un nuevo proceso (un nuevo programa) desde tu programa de Python, pudiendo también controlar su entrada, salida y error estandar, y obtener su código de retorno.
Primero, hay que importar el módulo de subprocesos:
```python
import subprocess
```
Para iniciar un nuevo proceso, se utiliza `subprocess.run()`. Por ejemplo, si quieres ejecutar el comando `ls -l` en un sistema Unix:
```python
import subprocess
subprocess.run([“ls”, “-l”])
```
`subprocess.run()` toma una lista de argumentos. El primer artículo es el nombre del programa para ejecutar. Los argumentos restantes son argumentos pasados al programa que estás ejecutando.
`subprocess.run()` espera hasta que el proceso se complete, luego devuelve un objeto `CompletedProcess`.
Si necesitas capturar la salida estándar del subproceso, puedes pasar el argumento `stdout=subprocess.PIPE`:
```python
import subprocess
result = subprocess.run([“ls”, “-l”], stdout=subprocess.PIPE)
Si quieres pasar datos a la entrada estándar de un proceso, puedes usar el argumento `input`, pero antes de ello necesitarás incluir `stdin=subprocess.PIPE` en la llamada a `run()`:
```python
import subprocess
result = subprocess.run([“grep”, “search_text”], input=“input_text”, encoding=‘utf-8’, stdout=subprocess.PIPE)
print(result.stdout)
```
Puedes manejar la excepción procesando usando `CalledProcessError` si el proceso devuelto no es cero:
```python
import subprocess
try:
result = subprocess.run([“false”], check=True)
except subprocess.CalledProcessError as e:
print(f“subprocess error: {e}”)
```