📜  如何在 python 中运行 linux 命令(1)

📅  最后修改于: 2023-12-03 15:38:24.359000             🧑  作者: Mango

在 Python 中运行 Linux 命令可以使用 os 模块和 subprocess 模块。这两个模块提供了不同的方法来执行命令并获取结果。以下将介绍这两个模块的常见用法。

os 模块

os 模块提供了一个 os.system 函数,它可以执行命令并返回状态码。该函数将命令作为字符串参数传递,并使用默认的 shell 来执行该命令。

以下是一个例子:

import os

status = os.system('ls -l')
print(f'Return code: {status}')

这将在控制台中列出当前目录的内容,并返回状态码(通常为 0,表示成功)。

subprocess 模块

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 模块中的类和函数,如 PopenPIPEcheck_callcheck_output 等。

总结

以上介绍了在 Python 中运行 Linux 命令的两种常见方法。os.system 更为简单,但不太灵活,只能返回状态码。subprocess.run 更为强大,可以返回命令的输出和状态码,也可以更详细地控制输入、输出和错误处理。根据需要选择合适的方法即可。