【发布时间】:2014-11-13 18:15:26
【问题描述】:
我有一个用 C++ 编写的程序,它所做的只是将 1/0 相除以产生异常。
我通过 Python 的子进程库运行这个程序的 .exe。我的目标是在 Python 中捕获并记录 C++ 程序产生的异常。
p = subprocess.Popen(['C:\\Users\\name\\Desktop\\Win32Project1.exe'])
当这行代码执行时,p 是一个非零值,表示发生了错误。 我正在运行 Windows 7 并使用 Python 3.4.1
【问题讨论】:
-
根据您需要多少控制,您需要处理 stdout 和 stderr 管道 + wait() 返回值。也许check_output 能帮到你?
-
当这行代码执行时,p 是一个非零值,意味着发生了错误 - 不,这不是发生的情况。
subprocess.Popen返回一个从不为零的 Popen 对象。如果您愿意,可以致电p.wait()并获取返回码。
标签: python c++ exception visual-studio-2012 subprocess