
python调用linux下的命令
我想在Python程序里运行一些Linux命令,该如何实现?
使用subprocess模块执行Linux命令
Python标准库中的subprocess模块允许你运行Linux命令。通过subprocess.run()或subprocess.Popen()可以执行命令并获取其输出或状态。示例代码:
import subprocess
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, text=True)
print(result.stdout)
在Python调用Linux命令时,我想得到命令的返回内容,该怎么操作?
捕获命令输出的方法
可以通过subprocess.run()函数的stdout参数捕获输出,设置stdout=subprocess.PIPE并指定text=True可返回字符串结果。例如:
output = subprocess.run(['pwd'], stdout=subprocess.PIPE, text=True).stdout
print(output.strip())
这样就会得到命令的标准输出内容。
如果我在Python中执行Linux命令时出现错误,如何检测并处理这些错误?
使用异常捕获和检查返回码
subprocess.run()带有check参数,可以自动检查命令退出码,如果非零会抛出CalledProcessError异常。示例:
try:
subprocess.run(['false'], check=True)
except subprocess.CalledProcessError as e:
print(f'命令执行失败,错误码:{e.returncode}')
此外,可以查看CompletedProcess对象的returncode属性来判断命令是否成功。