gpt4 book ai didi

python - 在 Python 中定期获取 bash 命令的输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:31 25 4
gpt4 key购买 nike

我正在为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com