gpt4 book ai didi

当使用 -i 参数调用时,python 子进程永远不会停止

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

我正在编写一个调用另一个 python 脚本 (script2) 的 python 脚本。我想在整个过程中从 script2 获取打印语句,而不仅仅是在最后。我有这个代码:

command = ['python', '-i', script2]
process = subprocess.Popen(command,
stderr=subprocess.STDOUT,
stdout = subprocess.PIPE)

print "process started"

while process.poll() is None:
line = process.stdout.readline()
if not line:
break
print line

这段代码确实将输出打印到屏幕上,但子进程永远不会结束。但是,将 command 更改为 command = ['python', script2] 会结束子进程,但仅在子进程结束后将输出打印到屏幕。

如何获得所需的行为?预先感谢,罗尔

最佳答案

尝试使用 -u 调用您的子进程(并且不要使用 -i)。这将阻止其输出被缓冲。在结束之前您看不到任何输出,因为它将所有输出写入缓冲区,直到填满或进程完成后才会刷新缓冲区。

关于当使用 -i 参数调用时,python 子进程永远不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9693401/

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