【问题标题】:Returns of running a batch file运行批处理文件的返回
【发布时间】:2017-07-22 04:16:13
【问题描述】:

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

status= os.system("file") 

我正在使用 subprocess 模块来获得输出。

output=subprocess.check_output("file")

我的问题:有没有什么功能可以让我在不运行我的文件两次的情况下同时拥有状态和输出?

【问题讨论】:

  • 对于Windows,您可以通过os.system()检查%errorlevel%系统变量来检查状态
  • subprocess.Popen 为您做到这一点。 (wait() 用于返回状态,stdout 用于输出。这里有很多例子。

标签: python-3.x subprocess output


【解决方案1】:

check_output 已经完成了您需要的一切。来自文档:

subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, Universal_newlines=False) 运行带有参数的命令并返回它的 输出为字节串。

如果返回码不为零,则会引发 CalledProcessError。这 CalledProcessError 对象将在 returncode 中有返回码 属性和输出属性中的任何输出

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

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 2015-05-12
    • 2013-06-03
    • 1970-01-01
    • 2012-12-18
    • 2017-11-17
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多