我正在为 python 中的 bash 命令编写一个 gui 包装器。运行 bash 命令时,前 3-4 行不变,最后一行被覆盖,以文本格式显示进度。我想将该进度转换为基于 python 的 gui 的进度条。
如何定时获取bash命令的执行进度?所有其他类似的答案都检索到前几行常量,但它们无法获取周期性变化的最后一行。
最佳答案
如果您正在使用 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)
关于python - 在 Python 中定期获取 bash 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929746/