
在自动化驱动的世界中,能够控制系统级别命令可以节省时间和精力。多功能语言 Python 提供了多种执行系统命令和运行外部程序的方法。本指南将重点介绍使用 os.system、os.popen 和 subprocess 模块,以精确控制系统级别交互的方法。
os.system 命令允许我们直接运行 shell 命令。
import os
exit_code = os.system('echo Hello, World!')
print("Exit code:", exit_code)输出
Hello, World!
Exit code: 0在上面的示例中,我们使用 os.system 调用了 echo 命令。退出码提供了有关操作成功与否的信息。
os.popen 函数允许您在子 shell 中运行命令,并提供了用于读取或写入的文件接口。
import os
file = os.popen('echo Hello, World!', 'r')
output = file.read()
print("Output:", output)
file.close()输出
Output: Hello, World!这段代码演示了如何使用 os.popen 将命令的输出读取到变量中。
subprocess 模块提供了对命令执行过程的更多控制。使用 subprocess.Popen,您可以执行命令,检索其输出并更灵活地管理进程。
import subprocess
process = subprocess.Popen(['echo', 'Hello, World!'], stdout=subprocess.PIPE)
output, error = process.communicate()
print("Output:", output.decode())输出
Output: Hello, World!在这里,使用 subprocess.Popen 执行了 echo 命令,并捕获了输出以供进一步处理。
subprocess.call 和 subprocess.run 都是方便的运行 shell 命令的方式。以下是演示其使用方法的示例。
# 使用 subprocess.call
exit_code = subprocess.call(['echo', 'Using call'])
print("Exit code using call:", exit_code)
# 使用 subprocess.run
result = subprocess.run(['echo', 'Using run'], stdout=subprocess.PIPE)
print("Output using run:", result.stdout.decode())输出
Using call
Exit code using call: 0
Using run
Output using run: Using run这些方法使命令更易执行,subprocess.run 在 Python 3.5 及更高版本中提供了更多功能。
执行系统命令并运行外部程序是许多自动化和集成任务的核心部分。Python 的灵活性以及诸如 os 和 subprocess 之类的模块使这些任务更易实现且易于维护。您可以根据应用程序的特定需求选择 os.system、os.popen 或更强大的 subprocess 方法。通过尝试这些示例,您将能够理解其功能并将其应用于项目中。
os.system 和 subprocess 之间的主要区别是什么?
os.system 更简单但提供更少的控制,而 subprocess 提供更多功能和对进程的控制。subprocess.Popen 和 subprocess.run 允许捕获标准输出和标准错误流。| [Python] 通过多种示例深入了解位运算符 |
|---|
| [Python] 通过多种示例深入了解关系运算符 |
| [Python] 解决 'zsh: command not found: python' 错误的方法 |
| [Python] 通过多种示例深入了解赋值运算符 |
| [Python] 通过多种示例深入了解算术运算符 |

CloneCoding
创新从一行代码开始!