我的目标是运行一个文件,返回其状态(如果成功则返回0)并返回其输出。我使用os模块来获得运行模拟的状态。
status= os.system("file")
我正在使用子进程模块来获取输出。
output=subprocess.check_output("file")
我的问题:是否有任何功能可以让我同时拥有状态和输出而无需运行我的文件两次?
答案 0 :(得分:1)
check_output
已经完成了您需要的一切。来自文档:
subprocess.check_output(args,*,stdin = None,stderr = None,shell = False, universal_newlines = False)运行带参数的命令并返回它 输出为字节串。
如果返回代码非零,则会引发CalledProcessError。该 CalledProcessError对象将在返回码中包含返回码 属性和输出属性中的任何输出
所以,如果一切正常,它只会返回输出。否则,会出现一个异常,其中存在确切的返回代码以及部分输出直到被调用进程的错误。