Python轻松驾驭:如何高效获取并展示命令行(cmd)结果

在Python中,获取并展示命令行(cmd)结果是一个常见的需求,无论是进行系统监控、自动化任务还是简单的脚本编写。Python的
subprocess
模块提供了一个强大的接口来启动和管理外部进程。以下是如何使用Python高效获取并展示命令行结果的方法。
1. 使用
subprocess
模块
Python的
subprocess
模块提供了
Popen
类,可以用来启动新的进程,并获取该进程的输出。
1.1 导入模块
import subprocess
1.2 使用
Popen
类
Popen
类允许你启动一个新的进程,并可以通过
stdout
和
stderr
管道来获取输出。
process = subprocess.Popen([‘cmd’, ‘command’], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
这里,
[‘cmd’, ‘command’]
是要执行的命令,
stdout=subprocess.PIPE
和
stderr=subprocess.PIPE
表示将标准输出和标准错误输出重定向到管道,
text=True
表示输出以文本形式返回。
1.3 获取输出
使用
Popen
对象的
stdout.read()
和
stderr.read()
方法可以获取输出。
stdout, stderr = process.communicate()
communicate()
方法会等待进程结束,并返回一个包含标准输出和标准错误的元组。
1.4 处理输出
if process.returncode == 0:
print(“命令执行成功:”)
print(stdout)
else:
print(“命令执行失败:”)
print(stderr)
这里,
process.returncode
是进程的退出状态码,如果为0表示成功,否则表示失败。
2. 示例:获取系统信息
以下是一个示例,展示如何使用Python获取当前系统的CPU信息。
import subprocess

def get_system_cpu_info():
process = subprocess.Popen([‘systeminfo’], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
stdout, stderr = process.communicate()
if process.returncode == 0:
print(“系统CPU信息:”)
print(stdout)
else:
print(“获取系统信息失败:”)
print(stderr)

get_system_cpu_info()
3. 注意事项
确保你有权限执行命令,否则可能会收到权限错误。
在处理命令行输出时,考虑异常处理,确保脚本在遇到错误时能够优雅地处理。
如果命令执行时间较长,可以考虑使用
Popen
对象的
poll()
方法来检查进程是否结束。
通过以上步骤,你可以轻松地在Python中获取并展示命令行结果。这不仅可以帮助你完成日常任务,还可以在更复杂的脚本和应用程序中发挥重要作用。