使用subprocess模块(Python 2.7),我正在运行一个命令并尝试在其运行时处理其输出。
我有以下代码:
然而,即使我在打印语句后添加了
我有以下代码:
process = subprocess.Popen(
['udevadm', 'monitor', '--subsystem=usb', '--property'],
stdout=subprocess.PIPE)
for line in iter(process.stdout.readline, ''):
print(line)
然而,即使我在打印语句后添加了
sys.stdout.flush()
,输出也只有在我按下Ctrl+C之后才会被打印出来。为什么会这样,并且我如何实时获取此进程的输出?值得注意的是,此udevadm monitor
命令不打算终止,因此我不能简单地等待进程终止并一次性处理其输出。我发现live output from subprocess command,但接受的答案中的方法并没有解决我的问题。