Вывод пакетного файла в скрипт Python - PullRequest
3 голосов
/ 09 мая 2009

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

Ответы [ 3 ]

8 голосов
/ 09 мая 2009
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".

2 голосов
/ 09 мая 2009

Вот пример сценария Python, который запускает 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"
1 голос
/ 09 мая 2009

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

...