gpt4 book ai didi

python - 使用python实时解析包含回车的命令行输出进程

转载 作者:行者123 更新时间:2023-12-01 06:19:19 25 4
gpt4 key购买 nike

我能够将回车符转换为新行。然而问题是让它几乎“实时”运行。如果进度条只有 0 和 100 的值,看起来会很愚蠢:-)

此代码立即返回输出:

import subprocess

p = subprocess.Popen(['mplayer', '/home/user/sample.mkv'], stdout=subprocess.PIPE).communicate()[0]
for line in p.splitlines():
if line.strip():
print line

最佳答案

pexpect除 Windows 之外的任何地方,以及 wexpect在 Windows 上,当您需要“击败缓冲”并“近乎实时”读取子进程的输出(如您所说)时,这始终是我的建议。由于您正在运行的子进程在输出到终端时与其他任何东西(因为这是 C 运行时库的正常行为)时很可能以不同的方式缓冲其输出,因此您需要欺骗它相信它正在输出到终端而不是而不是你的程序,这就是 pexpect 所实现的(通过通过较低级别的 pty 模块构建伪终端)。事实上,令我惊讶的是 wexpect 能够在 Windows 上执行大部分相同的操作,尽管偶尔不完美,但它似乎也能工作;-)。

关于python - 使用python实时解析包含回车的命令行输出进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486305/

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