在Python中,subprocess
模块用于创建和管理子进程。它提供了执行外部命令和与其进行交互的功能。下面是一些使用subprocess
模块的常见操作:
- 执行外部命令:
import subprocess
# 执行单个命令
subprocess.run(["ls", "-l"])
# 执行带有参数的命令
subprocess.run(["echo", "Hello, World!"])
# 捕获命令的输出
result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
print(result.stdout)
- 检查返回值和错误:
import subprocess
result = subprocess.run(["ls", "-l"])
if result.returncode == 0:
print("命令执行成功")
else:
print("命令执行失败")
if result.stderr:
print("命令执行过程中发生错误:", result.stderr)
- 与子进程进行交互:
import subprocess
# 执行命令并与其进行交互
process = subprocess.Popen(["grep", "python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, text=True)
output, _ = process.communicate(input="Hello, python!")
print(output)
# 逐行读取命令输出
process = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE, text=True)
for line in process.stdout:
print(line.strip())
以上只是subprocess
模块的一些简单用法示例。该模块还提供了更多的功能,例如控制输入输出、处理超时等。建议查阅官方文档以获取更详细的信息:https://docs.python.org/3/library/subprocess.html
请注意,在使用subprocess
执行外部命令时,要小心避免安全风险,如参数注入和命令执行漏洞。尽量使用可信任的命令和进行适当的输入验证。