Estoy intentando escribir una secuencia de comandos de Python (en Windows) que ejecuta un archivo por lotes y tomará la salida de la línea de comandos de ese archivo por lotes como entrada. El archivo por lotes ejecuta procesos a los que no tengo acceso y da salida en función de si esos procesos tienen éxito. Me gustaría tomar esos mensajes del archivo por lotes y usarlos en el script de Python. Alguien tiene alguna idea sobre como hacer esto ?
import subprocess output= subprocess.Popen( ("c:\\bin\\batch.bat", "an_argument", "another_argument"), stdout=subprocess.PIPE).stdout for line in output: # do your work here output.close()
Tenga en cuenta que es preferible iniciar su archivo por lotes con ” @echo off
“.
Aquí hay un ejemplo de secuencia de comandos de Python que ejecuta test.bat y muestra el resultado:
import os fh = os.popen("test.bat") output = fh.read() print "This is the output of test.bat:", output fh.close()
Fuente de test.bat:
@echo off echo "This is test.bat"
Intente subprocess.Popen (). Te permite redirigir stdout y stderr a archivos.