【发布时间】:2015-02-19 05:31:01
【问题描述】:
似乎有很多方法可以使用 python 通过命令行调用某些系统进程,然后在进程完成后读取输出。例如,subprocess 模块可以通过subprocess.Popen(['ls']) 完成此操作。
有没有办法在命令仍在运行时读取其输出?
例如,如果我调用 python 脚本multiply.py:
import time
def multiply(a,b):
newA = a
newB = b
while True: #endless loop
newA = newA+1
newB = newB+1
product = newA * newB
print 'Product: ',product
time.sleep(1)
multiply(40,2)
使用类似于subprocess.Popen(['python', 'multiply.py]) 的东西,有没有办法
- 启动进程
- 在进程运行时静默/主动捕获所有输出
- 'jump in'随时查看整个输出的内容?
上面的 python 脚本是我对捕获输出感兴趣的那种过程的模型,即有一个无限循环,它每秒打印一个输出;我对主动监控/捕获感兴趣的是这个输出。
【问题讨论】:
-
尝试了这些建议:他们没有解决问题
-
“他们没有解决问题” 信息量不是很大。请edit您的问题并准确说明您的情况有何不同:当您从重复问题运行解决方案时会发生什么?你期望会发生什么?提及您如何运行脚本(操作系统、Python 版本、IDE 或终端应用程序)。我假设您可以自己进行一些小的修改,例如
entire_output.append(line)。
标签: python subprocess