📜  python 用于执行 os 命令 - Python (1)

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

Python 用于执行 os 命令

在 Python 中,我们可以使用 os 模块执行各种操作系统命令。os 模块提供了一些有用的函数,例如 os.systemos.popenos.spawn* 等,用于执行命令、获取命令输出等。

执行命令

我们可以使用 os.system 函数来执行操作系统命令,它会在命令完成后返回命令的退出状态码。

import os
 
# 执行 ls 命令
status = os.system('ls')
print(f'Command exited with status {status}.')

如果命令执行成功,status 将为 0,否则为非零值。

获取命令输出

除了执行命令外,我们还可以使用 os.popen 函数来获取命令的输出。此函数将返回一个文件对象,您可以使用其 read 方法读取它的输出。

import os

# 获取 ls 命令的输出
output = os.popen('ls').read()
print(f'Command output: {output}')
使用 subprocess 模块执行命令

Python 还提供了一个 subprocess 模块,可以更方便地执行命令和获取输出。使用该模块还可以更好地控制子进程的行为。

下面的示例演示如何使用 subprocess 模块执行操作系统命令。

import subprocess

# 执行 ls 命令,返回输出
result = subprocess.check_output(['ls'])
print(f'Command output: {result.decode("utf-8")}')

# 执行命令并捕获标准输出和标准错误
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print(f'stdout: {result.stdout.decode("utf-8")}')
print(f'stderr: {result.stderr.decode("utf-8")}')

在以上示例中,我们通过 subprocess.check_output 来执行命令并直接返回输出,通过 subprocess.run 来执行命令并捕获标准输出和标准错误。

总结

在 Python 中,使用 os 模块和 subprocess 模块可以方便地执行操作系统命令,并获取命令的输出。在选择使用哪个模块时,请考虑您需要执行的命令及其输入输出,并根据情况进行决策。