gpt4 book ai didi

python - 尝试失败,但代码未执行除外

转载 作者:行者123 更新时间:2023-12-04 10:28:21 25 4
gpt4 key购买 nike

我想要发生的是运行其中包含代码示例的脚本,如果 scriptc 没有运行,只需将错误行附加到 stderr 文件并转储调用脚本。

我运行下面的程序,期望它尝试运行不存在的 scriptc,然后转储到异常并退出。但它不会运行写入 stderr 的异常代码,也不会退出()。它继续运行我不想运行的 scriptb 的代码。有人可以告诉我我做错了什么吗?

try:
out=subprocess.run(["python3",'scriptc.py'],stdout=fout,stderr=ferr, universal_newlines=True)

except:

sys.stderr.write("scriptc not run \n")
sys.exit()

fout=subprocess.run(["python3",'scriptb.py'],stdout=fout,stderr=ferr, universal_newlines=True)

最佳答案

subprocess.run如果它运行的进程返回非零状态代码,则不会引发异常,这里就是这种情况。

您应该调用 check_returncode 返回CompletedProcess的方法反对提出 CalledProcessError异常(exception):

out=subprocess.run(["python3",'scriptc.py'],stdout=fout,stderr=ferr, universal_newlines=True)
try:
out.check_returncode()
except subprocess.CalledProcessError:
sys.stderr.write("scriptc not run \n")
sys.exit()

关于python - 尝试失败,但代码未执行除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60533365/

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