gpt4 book ai didi

python - 如何使用 Python 捕获输出并同时显示它?

转载 作者:太空狗 更新时间:2023-10-29 21:44:24 25 4
gpt4 key购买 nike

我有一个运行时间很长的作业,它运行了几分钟然后重新启动。该任务输出我这样捕获的各种信息:

output = subprocess.Popen(cmd,stdout=subprocess.PIPE).communicate()

问题是,我一次只会获得整个输出。我想在程序将其发送到标准输出时显示输出,同时仍将其推回缓冲区(我需要检查输出中是否存在某些字符串)。在 Ruby 中,我会这样做:

IO.popen(cmd) do |io|
io.each_line do |line|
puts line
buffer << line
end
end

最佳答案

你可以试试这样的:

cmd = ["./my_program.sh"]
p = subprocess.Popen( cmd, shell=False, stdout=subprocess.PIPE) # launch the process
while p.poll() is None: # check if the process is still alive
out = p.stdout.readline() # if it is still alive, grab the output
do_something_with(out) # do what you want with it

关于python - 如何使用 Python 捕获输出并同时显示它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7977829/

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