【发布时间】:2014-12-16 13:55:36
【问题描述】:
我有一个生成恒定输出的程序 (hcitool lescan):
CC:41:00:4D:AA:AA Name1
CC:41:00:4D:AA:BB Name2
CC:41:00:4D:AA:CC Name3
我想不断地在Python 中解析这个输出,但是几秒钟后我想终止进程。
由于它必须手动终止(按CTRL-C),我不能使用subprocess.check_value(["prog"])。也调用p = subprocess.Popen(["prog"], stdout=subprocess.PIPE) 不好,因为它命令Popen 将其读给EOF。此外,这样的调用会挂起Python 脚本。
我的问题是:如何在Python 中启动一个程序(可以限制为Linux 环境)并在几秒钟后在收集它的输出(来自stdout)时终止它?
【问题讨论】:
-
你能检查特殊的“控制词”吗?比如“退出”?
-
调用
p = Popen(["prog"], stdout=PIPE)不会命令Popen阅读直到EOF。 -
@J.F.Sebastian 您的链接就像一个魅力。可以锁定这个问题并添加参考:stackoverflow.com/questions/4417962/…
标签: python subprocess stdout popen bluez