在自动化驱动的世界中,能够控制系统级别命令可以节省时间和精力。多功能语言 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
创新从一行代码开始!