为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2021-12-09 18:26:04
任何人都可以对以下脚本进行一些改进,以便如果 Application.exe 文件失败,脚本会结束而不是无限期地挂起?application = r'.\Application.exe'input_params = '-i Input_1 -j Input_2process = (application,input_params)p = subprocess.Popen(" ".join(process),shell= True, stderr=subprocess.STDOUT, stdout = subprocess.PIPE)p.communicate()当应用程序文件失败时没有抛出异常,是否有可能让子进程在这样的事件中抛出一个?编辑:实现了 p.returncode 语句。修改我原来的问题,当 Application.exe 程序失败时,它会显示以下窗口只有在我关闭此窗口后,程序才会继续(例如:p.returncode 将返回值 255)。有没有办法不显示此窗口或自动关闭此窗口,或者尽管显示此窗口,程序仍继续运行?问候
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

如何从 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))


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 523 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信