运行批处理文件的返回
问题描述:
我的目标是运行一个文件,返回其状态(如果成功则返回0)并返回其输出。我正在使用os模块来获得运行模拟的状态。运行批处理文件的返回
status= os.system("file")
而我正在使用subprocess模块有输出。
output=subprocess.check_output("file")
我的问题:是否有任何功能,使我有两个状态和输出没有运行我的文件两次?
答
check_output
已经做好了你需要的一切。从该文档:
subprocess.check_output(参数,*,标准输入=无,标准错误=无,壳=假, universal_newlines =假)运行命令参数和返回其 输出作为字节串。
如果返回码非零,则会引发CalledProcessError。该 CalledProcessError对象将在返回码 属性返回代码和输出任何输出属性
所以,如果一切正常,它只是返回的输出。否则,会出现一个异常,其中包含确切的返回码以及直到被调用进程错误的部分输出。
对于windows,你可以通过检查'%errorlevel%'系统变量'os.system()' –
'subprocess.Popen'来检查你的状态。 ('wait()'用于返回状态,'stdout'用于输出。这里有很多例子。 –