gpt4 book ai didi

python - 可执行文件失败时从subprocess.Popen()捕获错误

转载 作者:行者123 更新时间:2023-12-03 08:21:40 31 4
gpt4 key购买 nike

任何人都可以建议对以下脚本进行一些改进,以便如果Application.exe文件失败,该脚本将结束而不是无限期地挂起?

application = r'.\Application.exe'
input_params = '-i Input_1 -j Input_2

process = (application,input_params)
p = subprocess.Popen(" ".join(process),shell= True, stderr=subprocess.STDOUT, stdout = subprocess.PIPE)
p.communicate()

当应用程序文件失败时,没有引发异常,是否有可能在这种情况下让子进程抛出一个异常?

编辑:实现了p.returncode语句。

若要修改我的原始问题,当Application.exe程序失败时,它将显示以下窗口

enter image description here

只有在我关闭此窗口后,程序才能继续执行(例如:p.returncode将返回值255)。

有没有办法不显示该窗口或自动关闭该窗口,或者尽管显示了该窗口也使程序继续运行?

问候

最佳答案

How to catch exception output from Python subprocess.check_output()?

try:
subprocess.check_output(...)
except subprocess.CalledProcessError as e:
print e.output
from subprocess import Popen, PIPE

p = Popen(['bitcoin', 'sendtoaddress', ..], stdout=PIPE, stderr=PIPE)
output, error = p.communicate()
if p.returncode != 0:
print("bitcoin failed %d %s %s" % (p.returncode, output, error))

关于python - 可执行文件失败时从subprocess.Popen()捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55243993/

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