Python - 执行bash命令,同时打印并保存输出

时间:2014-10-04 09:36:52

标签: python bash subprocess

从Python开始,我想执行一个bash命令(可能使用subprocess.Popen()),我想打印输出,同时也将输出保存在变量或文件中。 此命令返回大量文本,运行需要几个小时。

如果我将输出重定向到文件,我可以立即打印出此文件中出现的每一行吗?

1 个答案:

答案 0 :(得分:0)

如果你想在Python中完成所有操作,没有tee命令,你可以。基本上你需要设置stdout=PIPE(参见子流程文档),然后在其上使用select(),以便在有大量数据需要读取时得到通知。有可用数据时,读取并将其写入文件并同时打印。您可以为此目的适应的类似问题的解决方案如下:https://stackoverflow.com/a/12272262/4323