在Python中利用run()函数执行外部命令
发布时间:2024-01-12 09:09:56
在Python中,我们可以使用subprocess模块中的run()函数来执行外部命令。run()函数被设计为更好的替代了较早的call()函数,并通过更多的选项提供更加灵活的控制。
下面是一个使用run()函数执行外部命令的例子:
import subprocess
# 执行简单的命令,不需要获取输出结果
subprocess.run(["ls", "-l"])
# 执行命令,并获取输出结果
result = subprocess.run(["ls", "-l"], capture_output=True, text=True)
print(result.stdout)
# 执行命令时传递参数
subprocess.run(["python", "-c", "print('Hello, World!')"])
# 检查命令是否执行成功
result = subprocess.run(["ls", "-l"], check=True)
在上面的例子中:
- 个示例执行了ls -l命令,并直接将结果输出到终端。
- 第二个示例执行了ls -l命令,并使用capture_output=True参数来捕获输出结果,并使用text=True参数将输出结果解码为文本。然后,我们打印了输出结果。
- 第三个示例执行了python -c "print('Hello, World!')"命令。通过这种方式,我们可以在执行命令的同时传递参数给Python解释器。
- 第四个示例执行了ls -l命令,并使用check=True参数来检查命令是否执行成功。如果命令执行失败,run()函数将抛出一个CalledProcessError异常。
在使用subprocess.run()函数时,你还可以指定许多其他选项,例如传递环境变量、改变工作目录、设置超时等。你可以参考官方文档以获取更多详细信息:https://docs.python.org/3/library/subprocess.html#subprocess.run
