📅  最后修改于: 2023-12-03 15:38:24.359000             🧑  作者: Mango
在 Python 中运行 Linux 命令可以使用 os
模块和 subprocess
模块。这两个模块提供了不同的方法来执行命令并获取结果。以下将介绍这两个模块的常见用法。
os
模块提供了一个 os.system
函数,它可以执行命令并返回状态码。该函数将命令作为字符串参数传递,并使用默认的 shell 来执行该命令。
以下是一个例子:
import os
status = os.system('ls -l')
print(f'Return code: {status}')
这将在控制台中列出当前目录的内容,并返回状态码(通常为 0,表示成功)。
subprocess
模块更为强大,提供了更细粒度的控制。该模块提供了多个函数和类,其中最常用的是 subprocess.run
函数,它可以执行命令并返回结果,包括标准输出、标准错误和状态码。
以下是一个例子:
import subprocess
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)
print(f'Return code: {result.returncode}')
subprocess.run
函数的参数是一个列表,其中第一个元素是命令本身,后面的元素是命令的选项和参数。capture_output
选项用于捕获命令的标准输出和标准错误输出。text
选项用于将输出转换为字符串。
如果想要更详细地控制命令的输入、输出和错误处理,可以使用其他 subprocess
模块中的类和函数,如 Popen
、PIPE
、check_call
、check_output
等。
以上介绍了在 Python 中运行 Linux 命令的两种常见方法。os.system
更为简单,但不太灵活,只能返回状态码。subprocess.run
更为强大,可以返回命令的输出和状态码,也可以更详细地控制输入、输出和错误处理。根据需要选择合适的方法即可。