如何在python中执行linux命令

如何在python中执行linux命令

作者:Rhett Bai发布时间:2026-01-14阅读时长:0 分钟阅读次数:32

用户关注问题

Q
如何在Python脚本中运行Linux命令?

我想通过Python代码执行一些Linux命令,有什么方法可以实现吗?

A

使用subprocess模块执行Linux命令

可以使用Python内置的subprocess模块调用Linux命令。通过subprocess.run()或subprocess.Popen()函数,可以执行系统命令并获取执行结果。例如:

import subprocess
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)

这种方式可以捕获命令输出,支持复杂的命令调用。

Q
执行Linux命令时如何处理命令输出和错误?

运行Linux命令后,我想获取命令的标准输出和错误信息,该怎么做?

A

捕获标准输出和标准错误流

subprocess.run()函数提供了参数capture_output=True,可以捕获命令的标准输出和错误。执行后,可以通过result.stdout和result.stderr访问这些内容。示例代码:

import subprocess
result = subprocess.run(['ls', '/nonexistent'], capture_output=True, text=True)
print('输出:', result.stdout)
print('错误:', result.stderr)

这样有助于调试和处理命令执行中的异常。

Q
使用Python执行Linux命令有哪些安全注意事项?

直接在Python中调用shell命令存在安全风险吗?如何避免注入攻击?

A

避免命令注入的安全做法

执行命令时,避免直接拼接字符串传递给shell。尽量传递参数列表而非字符串,并将shell参数设置为False。例如:

subprocess.run(['ls', '-l'])

如果必须使用shell=True,应对输入做严格验证以防止注入攻击。避免运行未经验证的外部输入。此外,使用Python模块自带功能完成系统操作,也可以减少安全风险。