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 命令并获取执行结果。在实际应用中,我们可以根据自己的需求定制命令,并根据返回码判断命令是否执行成功。希望本文能够帮助你顺利完成任务,如果有任何疑问请随时提问。