python3(lynux)中函数run()的绑定/管道输出

python3(lynux)中函数run()的绑定/管道输出,python,parallel-processing,subprocess,function-binding,Python,Parallel Processing,Subprocess,Function Binding,我试图使用运行功能使用外部程序运行的输出。 这个程序定期抛出一行我需要在脚本中使用的数据 我找到了一个子流程库,并使用了它的run()/check\u output() 示例: def普通_过程(): #这里有一些代码 对于子进程中的i。检查_输出(['foo','$$'): 一些函数(一) 现在假设foo已经在路径变量中,并且它以半随机周期输出字符串。 我希望程序自己做事情,每次foo向其输出发送新行时运行一些函数(I) 这归结为两个问题。将输出管道化到for循环中,并将其作为后台子流程运行

我试图使用运行功能使用外部程序运行的输出。 这个程序定期抛出一行我需要在脚本中使用的数据 我找到了一个子流程库,并使用了它的
run()
/
check\u output()

示例:
def普通_过程():
#这里有一些代码
对于子进程中的i。检查_输出(['foo','$$'):
一些函数(一)

现在假设foo已经在路径变量中,并且它以半随机周期输出字符串。
我希望程序自己做事情,每次foo向其输出发送新行时运行
一些函数(I)

这归结为两个问题。将输出管道化到for循环中,并将其作为后台子流程运行 多谢各位


更新:我已经设法使用

with os.popen('foo') as foos_output:
    for line in foos_output:
        some_function(line)
根据os.popen的说法,它将被弃用,但我还没有弄清楚如何在python中管道内部进程 现在只需要弄清楚如何在后台运行这个函数,我已经解决了这个问题。 第一步是启动外部脚本:
proc=Popen('./cisla.sh',stdout=PIPE,bufsize=1)

接下来,我启动了一个函数,该函数将读取它并向它传递一个管道

def foo(proc, **args):
       for i in proc.stdout:
         '''Do all I want to do with each'''

foo(proc).start()`
限制是: 如果您希望捕获脚本错误,则必须将其导入。

第二,如果你杀了parrent,它会留下一个僵尸,所以别忘了在信号处理中杀child

你是说
linux
?如果是的话,是哪个发行版?当我在对我的Gentoo进行编程和测试时,
我试图将特定于发行版的代码限制在最低限度,并尽可能使用Pyton3。产生的代码最初主要针对Raspbian,但在android的后一个版本中。在程序执行其他操作时,根据foo的输出更新变量的目的是最重要的