gpt4 book ai didi

python - Jupyter Notebook 中 Python 子进程的实时标准输出

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

我正在使用子进程从 Python (3.5.2) 脚本运行命令行程序,该脚本在 Jupyter 笔记本中运行。子进程需要很长时间才能运行,因此我希望它的标准输出能够实时打印到 Jupyter 笔记本的屏幕上。

我可以在从终端运行的普通 Python 脚本中毫无问题地做到这一点。我这样做使用:

def run_command(cmd):
from subprocess import Popen, PIPE
import shlex

with Popen(shlex.split(cmd), stdout=PIPE, bufsize=1, universal_newlines=True) as p:
for line in p.stdout:
print(line, end='')
exit_code = p.poll()
return exit_code

但是,当我在 Jupyter 笔记本中运行脚本时,它不会将标准输出实时打印到屏幕上。相反,它会在子进程完成运行后打印所有内容。

有没有人知道如何解决这个问题?

非常感谢,强尼

最佳答案

ipython 笔记本有它自己的 support for running shell commands .如果您不需要使用子流程进行捕获,您可以这样做

cmd = 'ls -l'
!{cmd}

使用 ! 执行的命令的输出自动通过笔记本传输。

关于python - Jupyter Notebook 中 Python 子进程的实时标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38616077/

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