📜  python 获取命令的输出到变量 - Python (1)

📅  最后修改于: 2023-12-03 14:46:18.070000             🧑  作者: Mango

Python 获取命令的输出到变量

在Python中,我们可以使用subprocess模块来获取命令的输出到变量中。这个模块提供了一个高级接口来启动子进程,并与其进行交互。

获取命令的输出

要获取命令的输出,我们可以使用subprocess.check_output函数。该函数会执行指定的命令,并返回该命令的输出。

import subprocess

output = subprocess.check_output(["ls", "-l"])

print(output.decode("utf-8"))

上面的代码会执行ls -l命令,并将其输出保存到output变量中。稍后我们使用decode()方法来将输出转换为字符串,并打印出来。

获取命令的状态码

有时候,我们需要知道执行命令的状态码。状态码是一个用来指示命令是否执行成功的整数。在Unix-like系统中,状态码为0表示成功,而其他数值则表示失败。

要获取命令的状态码,我们可以使用subprocess.run函数。该函数会执行指定的命令,并返回一个CompletedProcess对象。我们可以通过该对象的returncode属性来获取命令的状态码。

import subprocess

result = subprocess.run(["ls", "-l"])

print(result.returncode)

上面的代码会执行ls -l命令,并保存返回的CompletedProcess对象到result变量中。稍后我们使用returncode属性来获取命令的状态码,并打印出来。

完整的示例

下面是一个完整的示例,该示例演示了如何获取命令的输出和状态码。

import subprocess

try:
    # 获取命令的输出
    output = subprocess.check_output(["ls", "-l"])
    print(output.decode("utf-8"))

    # 获取命令的状态码
    result = subprocess.run(["ls", "-l"])
    print(result.returncode)
except subprocess.CalledProcessError as e:
    print(e)

在上面的示例中,我们使用了try/except块来处理check_output()函数抛出的异常。如果命令执行失败,该函数会引发CalledProcessError异常。