作为一名Python爱好者,你是否也想过用Python来获取Windows系统的各种信息,比如操作系统版本、CPU型号、内存使用情况等等?告别手动查看,让Python帮你轻松搞定!今天,我就带你一起探索如何使用Python获取这些信息,让你的脚本更加智能和强大。
准备工作:安装必要的库
要实现这个目标,我们需要用到两个强大的Python库:platform
和psutil
。
platform
:Python自带的库,用于获取操作系统平台信息。psutil
:一个跨平台的库,用于获取系统进程和系统资源利用率(CPU、内存、磁盘、网络等)的信息。
如果你的环境中还没有安装psutil
,可以使用pip进行安装:
pip install psutil
第一步:获取操作系统版本信息
platform
库可以帮助我们轻松获取操作系统的版本信息。下面是一个简单的例子:
import platform
system_version = platform.platform()
print(f"操作系统版本:{system_version}")
# 更详细的信息
os_name = platform.system()
os_version = platform.version()
os_release = platform.release()
print(f"操作系统名称:{os_name}")
print(f"操作系统版本号:{os_version}")
print(f"操作系统发行版本:{os_release}")
这段代码会输出类似下面的信息:
操作系统版本:Windows-10-10.0.19044-SP0
操作系统名称:Windows
操作系统版本号:10.0.19044
操作系统发行版本:10
第二步:获取CPU信息
虽然platform
库也能获取一些CPU信息,但相对比较简略。为了获取更详细的CPU信息,我们可以使用psutil
库。
import psutil
cpu_count = psutil.cpu_count(logical=False) # 物理核心数
cpu_logical_count = psutil.cpu_count(logical=True) # 逻辑核心数
cpu_percent = psutil.cpu_percent(interval=1) # CPU使用率,每秒采样一次
cpu_times = psutil.cpu_times()
print(f"物理核心数:{cpu_count}")
print(f"逻辑核心数:{cpu_logical_count}")
print(f"CPU使用率:{cpu_percent}%")
print(f"CPU时间信息:{cpu_times}")
# 获取更详细的CPU信息 (需要wmi模块,Windows specific)
try:
import wmi
c = wmi.WMI()
for cpu in c.Win32_Processor():
print(f"CPU型号:{cpu.Name}")
print(f"CPU核心数:{cpu.NumberOfCores}")
print(f"CPU线程数:{cpu.NumberOfLogicalProcessors}")
except ImportError:
print("未安装wmi模块,无法获取更详细的CPU信息。请安装:pip install wmi")
except Exception as e:
print(f"获取CPU信息时发生错误:{e}")
这段代码会输出CPU的核心数、使用率等信息。注意,要获取更详细的CPU型号等信息,可能需要安装wmi
模块(Windows Management Instrumentation),并且这段代码在非Windows系统上无法运行。你可以使用pip install wmi
来安装它。
第三步:获取内存使用情况
psutil
库同样可以帮助我们获取内存的使用情况。
import psutil
mem = psutil.virtual_memory()
total_memory = mem.total
available_memory = mem.available
used_memory = mem.used
memory_percent = mem.percent
print(f"总内存:{total_memory / (1024 ** 3):.2f} GB")
print(f"可用内存:{available_memory / (1024 ** 3):.2f} GB")
print(f"已用内存:{used_memory / (1024 ** 3):.2f} GB")
print(f"内存使用率:{memory_percent}%")
swap = psutil.swap_memory()
print(f"交换内存信息:{swap}")
这段代码会输出总内存、可用内存、已用内存以及内存使用率。我们将其转换成GB为单位,方便阅读。
整合代码,打造你的系统信息监控脚本
现在,我们可以将上面的代码整合起来,创建一个简单的系统信息监控脚本:
import platform
import psutil
import time
def get_system_info():
"""获取系统信息"""
info = {}
# 操作系统信息
info['os_version'] = platform.platform()
info['os_name'] = platform.system()
info['os_release'] = platform.release()
# CPU信息
info['cpu_count'] = psutil.cpu_count(logical=False)
info['cpu_logical_count'] = psutil.cpu_count(logical=True)
info['cpu_percent'] = psutil.cpu_percent(interval=1)
try:
import wmi
c = wmi.WMI()
for cpu in c.Win32_Processor():
info['cpu_name'] = cpu.Name
info['cpu_cores'] = cpu.NumberOfCores
info['cpu_threads'] = cpu.NumberOfLogicalProcessors
except ImportError:
info['cpu_name'] = "N/A (wmi模块未安装)"
except Exception as e:
info['cpu_name'] = f"Error: {e}"
# 内存信息
mem = psutil.virtual_memory()
info['total_memory'] = mem.total / (1024 ** 3) # GB
info['available_memory'] = mem.available / (1024 ** 3) # GB
info['used_memory'] = mem.used / (1024 ** 3) # GB
info['memory_percent'] = mem.percent
return info
if __name__ == '__main__':
while True:
system_info = get_system_info()
print("--- 系统信息 ---")
for key, value in system_info.items():
print(f"{key}: {value}")
print("------------------")
time.sleep(5) # 每隔5秒更新一次
这个脚本会每隔5秒钟输出一次系统信息,包括操作系统版本、CPU信息和内存使用情况。你可以根据自己的需求修改代码,比如将信息保存到文件中,或者通过网络发送到远程服务器。
总结
通过platform
和psutil
库,我们可以轻松地使用Python获取Windows系统的各种信息。这为我们自动化系统管理、监控和问题排查提供了强大的工具。希望这篇文章能够帮助你更好地利用Python,让你的工作更加高效!