gpt4 book ai didi

python - 将 subprocess.Popen 的标准输出逐行保存到文件

转载 作者:太空狗 更新时间:2023-10-29 21:07:47 32 4
gpt4 key购买 nike

我的 python 脚本使用子进程调用另一个脚本,它产生的输出非常慢(逐行)。我想将输出逐行写入文件,而不是在整个过程结束时将整个输出写入字符串。以下代码在“脚本”结束时将输出写入"file"。

args = ("script")
file = open('output.txt', 'w')
subprocess.Popen(args,stdout=file)

有可能吗?谢谢,克里斯

最佳答案

您可以使用 poll 与进程交互,这样您就可以逐行尝试与其交互:

例如:

process = subprocess.Popen(["ls", "-lart"],
bufsize=-1, # fully buffered (default)
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd=os.curdir,
env=os.environ)
my_stdout_file = open("stdout.txt", "w")
while True:
process.poll()
line = process.stdout.readline()
my_stdout_file.write(line)
eline = process.stderr.readline()
if line:
stdout_lines.append(line)
if eline:
stderr_lines.append(eline)
if (line == "" and eline == "" and
process.returncode != None):
break

关于python - 将 subprocess.Popen 的标准输出逐行保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5171317/

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