温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!
Python提供了多种方式来执行shell命令,其中最常用的有使用`os`模块和使用`subprocess`模块。下面我将分别介绍这两种方式。
1. 使用`os`模块执行shell命令:
`os`模块提供了一个`system`函数,可以用于执行shell命令。这个函数接受一个字符串参数,其中包含要执行的shell命令。调用`system`函数后,Python会创建一个新的shell进程,并在该进程中执行指定的命令。当命令执行完毕后,Python会继续执行。
示例代码如下:
import os
# 执行shell命令
os.system("ls -l")
在上面的示例中,我们使用`os.system`函数执行了一个`ls -l`的shell命令,该命令会列出当前目录下的文件和文件夹,并显示详细信息。
需要注意的是,`os.system`函数执行命令时,会将命令的输出直接打印到终端,而不会返回给Python程序。如果需要获取命令的输出结果,可以使用`subprocess`模块。
2. 使用`subprocess`模块执行shell命令:
`subprocess`模块提供了更灵活的方式来执行shell命令,并且可以获取命令的输出结果。该模块提供了一个`run`函数,可以用于执行命令并获取输出结果。
示例代码如下:
import subprocess
# 执行shell命令
result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
# 打印命令的输出结果
print(result.stdout)
在上面的示例中,我们使用`subprocess.run`函数执行了一个`ls -l`的shell命令,并通过`capture_output=True`参数指定要获取命令的输出结果,通过`text=True`参数指定输出结果为文本形式。`run`函数的返回值是一个`CompletedProcess`对象,可以通过`stdout`属性获取命令的标准输出。
`subprocess`模块还提供了其他函数和类,可以更精细地控制命令的执行和处理输出结果,比如`Popen`类可以用于执行命令并获取输出流,`check_output`函数可以直接获取命令的输出结果等。
Python提供了`os`模块和`subprocess`模块来执行shell命令。使用`os.system`函数可以简单地执行命令,但无法获取输出结果;而使用`subprocess`模块可以更灵活地执行命令,并且可以获取输出结果。根据实际需求,选择适合的方式来执行shell命令。