繁体   English   中英

将批处理文件输出管道输出到Python脚本

[英]Piping Batch File output to a Python script

我正在尝试编写一个运行批处理文件的python脚本(在Windows中),并将该批处理文件的命令行输出作为输入。 批处理文件运行我无权访问的进程,并根据这些进程是否成功提供输出。 我想从批处理文件中获取这些消息并在python脚本中使用它们。 任何人对如何做到这一点都有任何想法?

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 ”启动批处理文件。

这是一个示例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"

尝试subprocess.Popen()。 它允许您将stdout和stderr重定向到文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM