python – 在运行时获取进程的输出
发布时间:2020-12-16 23:43:54 所属栏目:Python 来源:网络整理
导读:我使用 python脚本使用subprocess.Popen运行进程,同时将输出存储在文本文件中,并在控制台上打印.这是我的代码: result = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)for line in result.stdout.readlines(): #read and store result in log f
我使用
python脚本使用subprocess.Popen运行进程,同时将输出存储在文本文件中,并在控制台上打印.这是我的代码:
result = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE) for line in result.stdout.readlines(): #read and store result in log file openfile.write("%sn" %line) print("%s" %line) 上面的代码工作正常,但它的作用是首先完成该过程并将输出存储在结果变量中.之后for循环存储输出并打印它. 但我希望在运行时输出(因为我的过程可能需要数小时才能完成,所有这些时间都没有得到任何输出). 那么有没有任何其他函数可以动态地(在运行时)给我输出,意味着只要进程给出第一行,就应该打印出来. 解决方法
这里的问题是.readlines()在返回之前获取整个输出,因为它构造了一个完整的列表.直接迭代:
for line in result.stdout: print line (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |