Python获取Windows硬件信息

在计算机系统中,硬件信息是指计算机硬件设备的相关参数和配置信息。而获取硬件信息对于系统管理、性能监控、故障排查等应用场景非常重要。本文将介绍如何使用Python来获取Windows操作系统的硬件信息,并提供相应的代码示例。

1. 获取CPU信息

中央处理器(CPU)是计算机的核心组件之一,负责执行计算机指令并处理数据。下面的代码演示了如何使用Python获取Windows系统中的CPU信息。

import wmi

def get_cpu_info():
    c = wmi.WMI()
    processors = c.Win32_Processor()
    
    cpu_info = []
    for processor in processors:
        cpu_info.append({
            'Name': processor.Name,
            'Manufacturer': processor.Manufacturer,
            'MaxClockSpeed': processor.MaxClockSpeed,
            'NumberOfCores': processor.NumberOfCores
        })
    
    return cpu_info

if __name__ == '__main__':
    cpu_info = get_cpu_info()
    for cpu in cpu_info:
        print(cpu)

上述代码中,我们使用了wmi模块来实现对Windows系统的硬件信息获取。通过Win32_Processor类可以获取所有CPU的相关信息,如名称、制造商、最大时钟速度和核心数量等。

2. 获取内存信息

内存是计算机用于临时存储数据的重要组件,它在系统运行过程中承担着存储程序和数据的任务。下面的代码示例展示了如何使用Python获取Windows系统中的内存信息。

import wmi

def get_memory_info():
    c = wmi.WMI()
    memory = c.Win32_PhysicalMemory()
    
    memory_info = []
    for m in memory:
        memory_info.append({
            'Capacity': m.Capacity,
            'Manufacturer': m.Manufacturer,
            'Speed': m.Speed
        })
    
    return memory_info

if __name__ == '__main__':
    memory_info = get_memory_info()
    for memory in memory_info:
        print(memory)

在上述代码中,我们使用了Win32_PhysicalMemory类来获取Windows系统中的物理内存信息,包括容量、制造商和速度等参数。

3. 获取硬盘信息

硬盘是计算机中用于永久存储数据的设备,通常用于存储操作系统、应用程序和用户数据等。下面的代码演示了如何使用Python获取Windows系统中的硬盘信息。

import wmi

def get_disk_info():
    c = wmi.WMI()
    disks = c.Win32_DiskDrive()
    
    disk_info = []
    for disk in disks:
        partitions = disk.associators("Win32_DiskDriveToDiskPartition")
        
        for partition in partitions:
            logical_disks = partition.associators("Win32_LogicalDiskToPartition")
            
            for logical_disk in logical_disks:
                disk_info.append({
                    'Model': disk.Model,
                    'SerialNumber': disk.SerialNumber,
                    'Size': disk.Size,
                    'DriveLetter': logical_disk.Caption
                })
    
    return disk_info

if __name__ == '__main__':
    disk_info = get_disk_info()
    for disk in disk_info:
        print(disk)

在上述代码中,我们使用了Win32_DiskDriveWin32_DiskDriveToDiskPartitionWin32_LogicalDiskToPartition类来获取Windows系统中的硬盘信息。通过遍历关联关系,我们可以获取到硬盘的型号、序列号、大小以及分区的驱动器字母等参数。

4. 获取网络适配器信息

网络适配器是计算机与网络之间的桥梁,它负责将计算机的数据转化为网络可以识别和传输的格式。下面的代码示例展示了如何使用Python获取Windows系统中的网络适配器信息。

import wmi

def get_network_adapter_info():
    c = wmi.WMI()
    adapters = c.Win32_NetworkAdapter()
    
    adapter_info = []
    for adapter in adapters:
        if adapter.NetConnectionStatus == 2:
            adapter_info.append({
                'Description': adapter.Description,
                'MACAddress': adapter.MACAddress,
                'IPAddress': adapter.IPAddress[0]
            })
    
    return adapter_info

if __name__ == '__main__':
    adapter_info = get_network_adapter_info()