Python 3.x 运行批处理文件的返回

Python 3.x 运行批处理文件的返回,python-3.x,subprocess,output,Python 3.x,Subprocess,Output,我的目标是运行一个文件,返回其状态(如果成功,则返回0),并返回其输出。我正在使用os模块来获得运行模拟的状态 status= os.system("file") 我使用子流程模块来获得输出 output=subprocess.check_output("file") 我的问题:是否有任何函数可以使我在不运行两次文件的情况下同时拥有状态和输出?check\u output已经完成了您需要的所有操作。从文档中: 子进程检查_输出(args,*,stdin=None,stderr=None,s

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

status= os.system("file") 
我使用子流程模块来获得输出

output=subprocess.check_output("file")

我的问题:是否有任何函数可以使我在不运行两次文件的情况下同时拥有状态和输出?

check\u output
已经完成了您需要的所有操作。从文档中:

子进程检查_输出(args,*,stdin=None,stderr=None,shell=False, universal_newlines=False)使用参数运行命令并返回其 以字节字符串形式输出

如果返回代码非零,则会引发被调用的进程错误。这个 CalledProcessError对象将在returncode中包含返回代码 属性和输出属性中的任何输出


因此,如果一切正常,它将返回输出。否则,将引发一个异常,其中存在确切的返回代码以及部分输出,直到调用进程出错。

对于windows,您可以通过
os.system()
子进程检查
%errorlevel%
系统变量来检查状态。Popen
为您执行此操作。(
wait()
用于返回状态,
stdout
用于输出。这里有很多这样的示例。