Python 执行 Shell 命令获取执行结果的方法

概述

在开发过程中,有时候我们需要在 Python 中执行 Shell 命令,并获取执行结果。本文将介绍如何使用 Python 执行 Shell 命令,并获取执行结果的方法。

流程图

flowchart TD;
    A(开始) --> B(导入模块);
    B(导入模块) --> C(执行 Shell 命令);
    C(执行 Shell 命令) --> D(获取执行结果);
    D(获取执行结果) --> E(结束);

步骤详解

导入模块

首先,我们需要导入 Python 的 subprocess 模块,该模块提供了一个能够在子进程中执行新程序的函数。

import subprocess

执行 Shell 命令

使用 subprocess 模块的 run 函数可以执行 Shell 命令。需要注意的是,该函数会在新的子进程中执行命令,并等待命令执行完毕才返回。

command = 'ls -l'
result = subprocess.run(command, shell=True, capture_output=True, text=True)

在上述代码中,我们执行了一个简单的 Shell 命令 ls -l,并将执行结果保存在 result 变量中。参数 shell=True 表示在 Shell 中执行命令,capture_output=True 表示捕获命令的输出,text=True 表示将命令的输出以文本形式返回。

获取执行结果

通过 result 变量我们可以获取命令执行的结果。result 是一个 CompletedProcess 对象,其中包含了命令的执行结果。

output = result.stdout
error = result.stderr
returncode = result.returncode
  • stdout:命令的标准输出。
  • stderr:命令的标准错误输出。
  • returncode:命令的返回码。

完整示例代码

下面是一个完整的示例代码,演示了如何使用 Python 执行 Shell 命令,并获取执行结果。

import subprocess

def execute_shell_command(command):
    result = subprocess.run(command, shell=True, capture_output=True, text=True)
    output = result.stdout
    error = result.stderr
    returncode = result.returncode
    return output, error, returncode

command = 'ls -l'
output, error, returncode = execute_shell_command(command)

if returncode == 0:
    print(output)
else:
    print(error)

类图

classDiagram
    class subprocess {
        + run()
    }

总结

本文介绍了如何使用 Python 执行 Shell 命令,并获取执行结果的方法。通过导入 subprocess 模块,调用 run 函数,可以执行 Shell 命令并获取执行结果。在实际应用中,我们可以根据自己的需求定制命令,并根据返回码判断命令是否执行成功。希望本文能够帮助你顺利完成任务,如果有任何疑问请随时提问。