【发布时间】:2014-10-04 09:36:52
【问题描述】:
在 Python 中,我想执行一个 bash 命令(可能使用 subprocess.Popen()),我想打印输出,同时将输出保存在变量或文件中。 此命令返回大量文本,运行需要几个小时。
如果我将输出重定向到一个文件,我可以立即打印该文件中出现的每一行吗?
【问题讨论】:
-
查看
tee命令。
标签: python bash subprocess
在 Python 中,我想执行一个 bash 命令(可能使用 subprocess.Popen()),我想打印输出,同时将输出保存在变量或文件中。 此命令返回大量文本,运行需要几个小时。
如果我将输出重定向到一个文件,我可以立即打印该文件中出现的每一行吗?
【问题讨论】:
tee 命令。
标签: python bash subprocess
如果您想在 Python 中完成这一切,无需 tee 命令,您可以。基本上你需要设置stdout=PIPE(参见子流程文档),然后在上面使用select(),以便在有大量数据要读取时收到通知。当有可用数据时,读取数据并将其写入文件并同时打印。您可以为此目的调整的类似问题的解决方案在这里:https://stackoverflow.com/a/12272262/4323
【讨论】: