子流程调用 http://docs.python.org/library/subprocess.html#subprocess.call只需运行命令并返回其退出状态(在 python 中,退出状态可以通过以下方式设置)sys.exit(N)
-- 在其他语言中,退出状态由不同的方式确定)。如果您想实际掌握该流程,则需要使用subprocess.Popen
。所以,对于你的例子:
run = subprocess.Popen('Name', stdout = subprocess.PIPE, env={'LANG':'C++'})
data, error = run.communicate()
程序退出状态现在可以通过returncode
属性。
另外,作为风格问题,我会这样做:
run = subprocess.Popen('Name', stdout = subprocess.PIPE, stderr = subprocess.PIPE, env={'LANG':'C++'})
data, error = run.communicate()
or:
run = subprocess.Popen('Name', stdout = subprocess.PIPE, env={'LANG':'C++'})
data, _ = run.communicate()
由于您没有赋予自己捕获 stderr 的能力,因此您可能不应该假装自己得到了有意义的东西。