2009-05-08 3 views
3

Я пытаюсь написать сценарий python (в окнах), который запускает командный файл и выведет в командной строке вывод этого командного файла. В пакетном файле выполняются процессы, к которым у меня нет доступа, и выдает результаты на основе успешности этих процессов. Я хотел бы взять эти сообщения из командного файла и использовать их в скрипте python. У кого-нибудь есть идеи о том, как это сделать?Пассивный вывод файла на скрипт Python

ответ

1

Попробуйте выполнить подпроцесс.Popen(). Он позволяет перенаправлять файлы stdout и stderr в файлы.

2

Вот питон пример сценария, который запускает файл Test.bat и отображает результат:

import os 

fh = os.popen("test.bat") 
output = fh.read() 
print "This is the output of test.bat:", output 
fh.close() 

Источник test.bat:

@echo off 
echo "This is test.bat" 
8
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() 

Обратите внимание, что предпочтительнее, чтобы начать свой пакетный файл с «@echo off».