如何使用subprocess.Popen获取命令的输出,并为标准输出和标准错误设置单独的回调函数,但确保这些回调函数按从进程中获取的行的顺序调用?
如果我不关心将STDOUT和STDERR分开,则可以执行以下操作:
fd = subprocess.Popen( cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT )
line = fd.stdout.readline()
while line :
callback( line )
line = fd.stdout.readline()
然而,如果我有stdoutCallback
和stderrCallback
,并且希望它们在适当的输出上被调用,但顺序与上述代码调用callback
的顺序相同,我该如何做?