0

我正在使用子进程从视频设备检查 zbarcam 的输出

这是我的代码:

>>> import subprocess
>>> subprocess.check_output(["zbarcam","/dev/video1"])

Zbarcam 启动一个窗口,我可以在该窗口上检查视频,问题是即使它已经阅读了代码,它也会继续运行,我必须手动关闭这个窗口,然后才能将任何内容输出到 python shell。

4

2 回答 2

0

subprocess.check_output调用仅在进程退出时为您提供输出。您想要的是在它仍在运行时读取输出。

为此,您可以使用以下内容:

import os

process =os.popen('/usr/bin/zbarcam','r')
while True:
    print 'Got barcode:', process.readline()
于 2013-04-24T15:47:53.390 回答
0

这是完全正常的。只有在命令完成后才能获得输出。

看这里:

如何从 Python 异步运行外部命令?

用于异步运行命令的解决方案。

于 2013-04-24T15:48:08.137 回答