运行批处理文件的返回

运行批处理文件的返回

问题描述:

我的目标是运行一个文件,返回其状态(如果成功则返回0)并返回其输出。我正在使用os模块来获得运行模拟的状态。运行批处理文件的返回

status= os.system("file") 

而我正在使用subprocess模块​​有输出。

output=subprocess.check_output("file") 

我的问题:是否有任何功能,使我有两个状态和输出没有运行我的文件两次?

+0

对于windows,你可以通过检查'%errorlevel%'系统变量'os.system()' –

+2

'subprocess.Popen'来检查你的状态。 ('wait()'用于返回状态,'stdout'用于输出。这里有很多例子。 –

check_output已经做好了你需要的一切。从该文档:

subprocess.check_output(参数,*,标准输入=无,标准错误=无,壳=假, universal_newlines =假)运行命令参数和返回其 输出作为字节串。

如果返回码非零,则会引发CalledProcessError。该 CalledProcessError对象将在返回码 属性返回代码和输出任何输出属性

所以,如果一切正常,它只是返回的输出。否则,会出现一个异常,其中包含确切的返回码以及直到被调用进程错误的部分输出。