Preguntas etiquetadas con subprocess

El módulo de subproceso de Python le permite generar nuevos procesos, conectarse a sus tuberías de entrada / salida / error y obtener sus códigos de retorno. Úselo para ejecutar un comando de shell o un ejecutable en Python.

909
Ejecutar comando de shell y capturar la salida

Quiero escribir una función que ejecute un comando de shell y devuelva su salida como una cadena , sin importar si es un mensaje de error o de éxito. Solo quiero obtener el mismo resultado que habría obtenido con la línea de comando. ¿Cuál sería un ejemplo de código que haría tal cosa? Por...

325
Uso del módulo 'subproceso' con tiempo de espera

На этот вопрос есть ответы на Stack Overflow на русском : Прерывание процесса и задержка на исполнение Aquí está el código de Python para ejecutar un comando arbitrario que devuelve sus stdoutdatos, o generar una excepción en los códigos de salida distintos de cero: proc...

284
Subproceso de Python / Popen con un entorno modificado

Creo que ejecutar un comando externo con un entorno ligeramente modificado es un caso muy común. Así es como tiendo a hacerlo: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) Tengo el presentimiento de que hay...

260
Significado real de 'shell = True' en el subproceso

Estoy llamando a diferentes procesos con el subprocessmódulo. Sin embargo, tengo una pregunta. En los siguientes códigos: callProcess = subprocess.Popen(['ls', '-l'], shell=True) y callProcess = subprocess.Popen(['ls', '-l']) # without shell Ambos trabajan. Después de leer los documentos,...

235
leer el subproceso stdout línea por línea

Mi script de Python usa un subproceso para llamar a una utilidad de Linux que es muy ruidosa. Quiero almacenar todo el resultado en un archivo de registro y mostrarlo al usuario. Pensé que lo siguiente funcionaría, pero el resultado no aparece en mi aplicación hasta que la utilidad haya producido...

135
Obtener salida en tiempo real usando subproceso

Estoy tratando de escribir un script de contenedor para un programa de línea de comando (svnadmin verificar) que mostrará un buen indicador de progreso para la operación. Esto requiere que pueda ver cada línea de salida del programa envuelto tan pronto como salga. Pensé que simplemente ejecutaría...