HOOOS

Python玩转Windows:系统信息一网打尽,版本、CPU、内存,统统拿下!

0 25 Python玩家 PythonWindows系统信息
Apple

作为一名Python爱好者,你是否也想过用Python来获取Windows系统的各种信息,比如操作系统版本、CPU型号、内存使用情况等等?告别手动查看,让Python帮你轻松搞定!今天,我就带你一起探索如何使用Python获取这些信息,让你的脚本更加智能和强大。

准备工作:安装必要的库

要实现这个目标,我们需要用到两个强大的Python库:platformpsutil

  • 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信息和内存使用情况。你可以根据自己的需求修改代码,比如将信息保存到文件中,或者通过网络发送到远程服务器。

总结

通过platformpsutil库,我们可以轻松地使用Python获取Windows系统的各种信息。这为我们自动化系统管理、监控和问题排查提供了强大的工具。希望这篇文章能够帮助你更好地利用Python,让你的工作更加高效!

点评评价

captcha
健康