我收到错误:
UnboundLocalError: local variable 'process' referenced before assignment
在下面的代码中 - 如何在except块中获取过程对象?
try:
process = subprocess.Popen(list(args),
shell=False, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
except Exception, e:
print process.communicate()
答案 0 :(得分:4)
你调用的那一行失败了,这意味着process
永远不会绑定(因为代码永远不会那么远!)。所以没有办法做到这一点。
换句话说,当您致电subprocess.Popen
时会引发异常,因此无法将process
设置为。
答案 1 :(得分:2)
如果引发异常,则可能无法创建进程。因此,您不能假设变量process
将存在于except块中。
答案 2 :(得分:1)
您应该将一般情况“例外”更改为您实际期望的内容。 如果失败,进程在异常块中永远不会知道。 更多信息:https://docs.python.org/2/library/subprocess.html#exceptions