我正在使用子流程模块从python运行二进制文件。python子流程输出到标准输出
拍摄由二进制产生的输出,我使用:
proc = subprocess.Popen (command_args, shell=False, stdout=subprocess.PIPE)
out = proc.communicate()[0]
#print the output of the child process to stdout
print (out)
这样做是印刷过程中的输出后,已完成执行。无论如何,我可以打印此输出到标准输出程序正在执行?我真的需要看看输出是什么,因为这些程序可以运行很长时间。
感谢您的帮助。
没关系,大家好,我想我找到了解决办法: '基本上,你有3种选择: 使用线程到另一个线程读取而不会阻塞主线程。 选择stdout,stderr而不是通信。这样,您可以在数据可用时阅读并避免阻塞。 让图书馆解决这个问题,扭曲是一个明显的选择。“#: – therealtypon 2011-05-19 17:19:39
如果你找到另一个答案,像http://stackoverflow.com/questions/4585692/python-nonblocking-subprocess-check-stdout/4585898#4585898,请链接而不是在你自己的问题上重复评论的答案。 – phooji 2011-05-19 17:23:06
对不起。我认为评论中的观点是stackoverflow.com/questions/4585692/... 的蒸馏本质下次我会记住这一点 – therealtypon 2011-05-20 20:51:33