我想要做的是:
1.实时的从屏幕看到所调用程式的输出
2.捕获屏幕输出(因为后续要保存到log中)
3.得到调用程式的返回值
使用了subprocess来调用程序,但是工具是由其他公司的人写的,而且行时间比较长。
需要从屏幕实时看到工具的输出,并捕获这些输出(后续需要保存),我是这么写的:
run_watch=subprocess.Popen('./watch_se -t -v',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
output,err_msg=run_watch.communicate()
run_watch.returncode
但是这样写只有当调用的程序执行完成之后,才知道所调用程式的输出
使用上面方法只符合条件2和3,如果使用subprocess.call()则只符合条件1和3
请问,应该怎么做才能做到上面三点?
1.实时的从屏幕看到所调用程式的输出
2.捕获屏幕输出(因为后续要保存到log中)
3.得到调用程式的返回值
使用了subprocess来调用程序,但是工具是由其他公司的人写的,而且行时间比较长。
需要从屏幕实时看到工具的输出,并捕获这些输出(后续需要保存),我是这么写的:
run_watch=subprocess.Popen('./watch_se -t -v',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
output,err_msg=run_watch.communicate()
run_watch.returncode
但是这样写只有当调用的程序执行完成之后,才知道所调用程式的输出
使用上面方法只符合条件2和3,如果使用subprocess.call()则只符合条件1和3
请问,应该怎么做才能做到上面三点?