【问题标题】:How to get the status code of a shell call?如何获取 shell 调用的状态码?
【发布时间】:2017-04-29 19:54:06
【问题描述】:

我有以下命令:

import subprocess

proc = subprocess.Popen(["shutdown", "/m", r"\\<some comp name>", "/s", "/f"], stdout=subprocess.PIPE, shell=True)

如何获取命令的状态码,例如,如果计算机不存在,它将输出类似于&lt;comp name&gt; the entered computer name is not valid... talk to y our admin(53) 的内容我想要做的是获取命令的退出代码以及它是否有效输出yes 如果不输出no,如何获取命令的状态码?

【问题讨论】:

    标签: python python-2.7 windows-7


    【解决方案1】:

    直截了当的方式,作为奖励重定向/合并标准错误输出(在错误的情况下通常很有趣):

    proc = subprocess.Popen(["shutdown", "/m", r"\\<some comp name>", "/s", "/f"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    output = proc.stdout.read()
    return_code = proc.wait()
    

    (请注意,我删除了shell=True 选项,因为您没有在命令中使用shell 功能,所以没用,如果可以,请保持这种状态)

    编辑:在回答之前检查了一段时间是否重复,但找​​不到使用 Popen (https://stackoverflow.com/search?q=subprocess+get+output+return+code) 的完全匹配/简单示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      相关资源
      最近更新 更多