python存取执行命令的结果

python存取执行命令的结果

作者:Joshua Lee发布时间:2026-03-29 01:57阅读时长:13 分钟阅读次数:6
常见问答
Q
如何在Python中运行系统命令并获取输出?

我想在Python脚本里执行一个系统命令,并且能够获取该命令的输出结果,应该怎么操作?

A

使用subprocess模块执行命令并获取结果

Python的subprocess模块提供了丰富的功能来启动新进程、连接输入输出管道以及获取结果。可以使用subprocess.run()方法,并设置参数capture_output=True来获取命令执行的标准输出和标准错误。例如:

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

这样就能在Python中执行‘ls -l’命令并打印其输出。

Q
Python获取执行命令的返回码应该怎么做?

除了获取命令输出内容,我还想知道命令是否成功执行,Python中如何得到该信息?

A

通过subprocess模块的returncode属性获取返回码

执行系统命令时,subprocess.run()会返回一个CompletedProcess对象,其中包含returncode属性,代表命令的退出状态码。返回码为0通常表示命令成功执行,非0表示失败。示例:

import subprocess
result = subprocess.run(['ping', '-c', '1', 'example.com'])
print('命令返回码:', result.returncode)
if result.returncode == 0:
    print('命令执行成功')
else:
    print('命令执行失败')
Q
如何处理Python执行系统命令时可能出现的异常?

在运行外部命令过程中可能遇到错误,不想让程序崩溃,Python里有什么好的异常处理方案?

A

利用try-except捕获异常并安全执行命令

在使用subprocess执行命令时,可能会遇到FileNotFoundError或其他异常。建议将命令调用包裹在try-except块中捕获异常,保证程序稳定。例如:

import subprocess
try:
    result = subprocess.run(['some_nonexistent_command'], check=True, capture_output=True, text=True)
    print(result.stdout)
except subprocess.CalledProcessError as e:
    print('命令执行失败,返回码:', e.returncode)
except FileNotFoundError:
    print('命令未找到,请检查命令是否正确')