我正在用python为bash命令编写一个gui包装器。运行bash命令时,前3-4行是常量,最后一行被覆盖,以文本格式显示进度。我想把这个进度转换成一个进度条,变成一个基于python的gui。
如何定期获取bash命令的执行进度?所有其他类似的答案都会检索前几个恒定的行,但它们无法获取周期性变化的最后一行。
发布于 2015-06-19 14:42:11
如果您正在使用process.stdout.readline()读取输入,那么在将整行输出输出到标准输出之前,它不会获取进度。相反,您可以通过逐个字符流式传输来读取stdout,如下所示
import subprocess
import sys
process = subprocess.Popen("ls", stdout=subprocess.PIPE)
for c in iter(lambda: process.stdout.read(1), ''):
sys.stdout.write(c)https://stackoverflow.com/questions/30929746
复制相似问题