c语言编程笔录

首页 >   > 笔记大全

笔记大全

python如何运行shell命令subprocess

更新时间:2023-10-15

前言

使用Python运行shell命令是一种常见的需求,可以通过Python的subprocess模块轻松实现。本文将介绍如何使用subprocess模块执行shell命令,并提供一些示例代码和解释。

使用subprocess运行shell命令

subprocess模块为我们提供了多种方式来运行shell命令,让我们逐一介绍:

方法一:使用subprocess.run()

subprocess.run()是Python 3.5引入的函数,它以简洁的方式运行shell命令。

import subprocess

# 运行shell命令
subprocess.run(["ls", "-l"])

在上述代码中,我们运行了一个简单的shell命令"ls -l"。subprocess.run()接受一个列表作为参数,列表的第一个元素是要执行的命令,后面的元素是命令的参数。例如,上述代码中的"ls"是命令,"-l"是参数。

subprocess.run()的返回值是一个CompletedProcess对象,包含了命令的执行结果和其他信息。你可以通过检查CompletedProcess对象的属性来获取这些信息。

方法二:使用subprocess.call()

如果你使用的是Python 3.4以及更早的版本,你可以使用subprocess.call()函数来执行shell命令。

import subprocess

# 运行shell命令
subprocess.call(["ls", "-l"])

subprocess.call()的使用方式与subprocess.run()类似,只是它返回的是命令的退出代码而不是CompletedProcess对象。

方法三:使用subprocess.Popen()

subprocess.Popen()是最灵活的方法,它能够更好地控制命令的输入、输出和错误处理。

import subprocess

# 运行shell命令
process = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

# 获取命令的输出和错误
output, error = process.communicate()

# 打印输出和错误
print(output)
print(error)

在上述代码中,我们使用subprocess.PIPE参数将命令的输出和错误重定向到Python中的变量。然后,我们通过调用process.communicate()方法来执行命令,并获取输出和错误。最后,我们打印出输出和错误信息。

总结

通过subprocess模块,我们可以方便地在Python中运行shell命令。我们介绍了三种常用的方法:subprocess.run()、subprocess.call()和subprocess.Popen()。这些方法能够满足不同的需求,你可以根据自己的情况选择适合的方法来执行shell命令。