【发布时间】:2017-09-04 06:02:14
【问题描述】:
我正在尝试使用 run 函数运行外部程序的输出。
这个程序会定期抛出一行我需要在我的脚本中使用的数据
我找到了一个 subprocess 库并使用了它的 run()/check_output()
示例:def usual_process():
# some code here
for i in subprocess.check_output(['foo','$$']):
some_function(i)
现在假设 foo 已经在 PATH 变量中,并且它以半随机周期输出一个字符串。
我希望程序做自己的事情,并在每次 foo 向其输出发送新行时运行some_function(i)。
这归结为两个问题。将输出输送到 for 循环中并将其作为后台子进程运行 谢谢
更新:我已经设法使用 This 将 foo 输出到 some_function
with os.popen('foo') as foos_output:
for line in foos_output:
some_function(line)
根据this os.popen 将被弃用,但我还没有弄清楚如何在 python 中管道内部进程 现在只需要弄清楚如何在后台运行这个函数
【问题讨论】:
-
你的意思是
linux?如果是这样,哪个发行版? -
在我对我的 Gentoo 进行编程和测试时,
我试图将特定于发行版的代码限制在最低限度,并尽可能坚持使用 Pyton3。生成的代码最初将主要针对 Raspbian,但在后一个版本中是 android。根据 foo 的输出更新变量的意图很重要,而程序会做其他事情
标签: python parallel-processing subprocess function-binding