<分区>
我想使用 os.system 使用 python 制作一个简单的批处理脚本。我能够很好地运行命令,但这些命令的输出不会打印到 python shell。有什么方法可以将输出重定向到 python shell 吗?
标签 python
<分区>
我想使用 os.system 使用 python 制作一个简单的批处理脚本。我能够很好地运行命令,但这些命令的输出不会打印到 python shell。有什么方法可以将输出重定向到 python shell 吗?
最佳答案
您可以使用 subprocess
.
from subprocess import Popen, PIPE
p1 = Popen(['ls'], stdout=PIPE)
print p1.communicate()[0]
这将打印当前目录的目录列表。 communicate()
方法返回元组 (stdoutdata, stderrdata)
。如果您不在 Popen
调用中包含 stdout=PIPE
或 stderr=PIPE
,您只会得到 None
返回。 (所以在上面,p1.communicate[1]
是 None
。)
在一行中,
print Popen([command], stdout=PIPE).communicate()[0]
将 command
的输出打印到控制台。
你应该阅读更多here.您可以使用 Popen
和 PIPE
做更多事情。
关于Python:如何将 os.system 的输出重定向到 python shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140750/