gpt4 book ai didi

python runpy.run_module 退出代码

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:41 25 4
gpt4 key购买 nike

是否可以从通过 runpy.run_module() 调用的模块中获取退出代码?

我想更换我的
exit_code = subprocess.call('py -m mymodule')

runpy.run_module('mymodule')
并且仍然得到 exit_code 值。

mymodule 是一个包含 python 脚本 __main__.py 的目录,它只是执行 sys.exit(1)

在交互式 shell 中测试 runpy.run_module('mymodule') 会关闭该 shell。我找不到有关该行为的任何文档。在我看来,使用 subprocess.callrunpy.run_module 的区别在于将其作为程序或函数运行。如果是这种情况,那么行为就会得到解释,如果我需要退出代码,我不太可能使用 runpy.run_module。任何人都可以确认这一点,可能会提供一些我可以找到的文档的链接。

最佳答案

今天早上它击中了我,所以我测试了一个解决方案并且它有效:

import runpy

try:
runpy.run_module('mymodule')
except SystemExit as exeption:
exitcode = exeption.code
else:
exitcode = 0

要注意的是,您必须处理模块中抛出的每个异常。在我的示例中,我只处理 SystemExit 异常,因为这是我唯一感兴趣的异常。

关于python runpy.run_module 退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42141533/

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