Python:如何将 os.system 的输出重定向到 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=PIPEstderr=PIPE,您只会得到 None 返回。 (所以在上面,p1.communicate[1]None。)

在一行中,

print Popen([command], stdout=PIPE).communicate()[0]

command 的输出打印到控制台。

你应该阅读更多here.您可以使用 PopenPIPE 做更多事情。

关于Python:如何将 os.system 的输出重定向到 python shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140750/

相关文章:

python - 复杂列表理解比直接循环慢

python - 大矩阵矩阵的同时矩阵转置

python - 如何在 tensorflow2-gpu 中调试内存不足

python - 在 sqlalchemy 中的查询级别连接列

python - 解析制表符分隔的文件

python - Windows 上的 Tensorboard 报告 "No scalar data was found"

python - 在 python 中将列表中的索引表示为 x,y

python - 处理训练集和验证集的 ImageDataGenerator 中的类不匹配

python - 如何将两个数据帧中的两列合并到新数据帧(pandas)的一列中?

使用线程局部变量进行 Python 日志记录