将批处理文件输出管道传输到 Python 脚本
Posted
技术标签:
【中文标题】将批处理文件输出管道传输到 Python 脚本【英文标题】:Piping Batch File output to a Python script 【发布时间】:2010-10-24 22:27:00 【问题描述】:我正在尝试编写一个运行批处理文件并将该批处理文件的命令行输出作为输入的 python 脚本(在 Windows 中)。批处理文件运行我无权访问的进程,并根据这些进程是否成功提供输出。我想从批处理文件中获取这些消息并在 python 脚本中使用它们。有人对如何做到这一点有任何想法吗?
【问题讨论】:
【参考方案1】:试试 subprocess.Popen()。它允许您将 stdout 和 stderr 重定向到文件。
【讨论】:
【参考方案2】:这是一个运行 test.bat 并显示输出的示例 python 脚本:
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"
【讨论】:
【参考方案3】: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 脚本的主要内容,如果未能解决你的问题,请参考以下文章
使用管道将 Windows 命令解析为批处理文件中的变量 [重复]