gpt4 book ai didi

python - 如何将 os.execlpe() 的 stdout stderr 重定向到文件中

转载 作者:太空宇宙 更新时间:2023-11-03 20:55:06 25 4
gpt4 key购买 nike

我正在用头撞墙,按照以下方式从 python 运行 jpyter nbconvert,因为它允许我将参数传递给 jupyter 笔记本:

env['IPYTHONARGV'] = json.dumps({'timeperiod':timeperiod,'infile':infile})
os.execlpe('jupyter', 'jupyter', 'nbconvert', '--execute','notebook.ipynb',
'--to', 'html', '--output', output_html, '2>&1', '1>log.out', env)

当省略 '2>&1', '1>log.out', 部分时,该命令可以正常工作。但使用 bash 重定向时,该命令会出现以下错误:

[NbConvertApp] WARNING | pattern '2>&1' matched no files
[NbConvertApp] WARNING | pattern '1>log.out' matched no files

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

最佳答案

重定向 2>&11>log.out 由 shell 解释,但您将它们作为参数提供给命令。这就是 Jupyter 提示无法将它们作为文件找到的原因。

您可以将subprocessshell=True一起使用:

import subprocess as sp
env['IPYTHONARGV'] = json.dumps({'timeperiod':timeperiod,'infile':infile})
sp.check_call('jupyter nbconvert --execute notebook.ipynb --to html --output output_html 2>&1 1>log.out', shell=True, env=env)

如果您需要在 Python 中处理输出,您可以使用 sp.check_output() 并删除重定向。

关于python - 如何将 os.execlpe() 的 stdout stderr 重定向到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56071655/

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