Piping Batch File a un script de Python

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.