欢迎访问宙启技术站
智能推送

使用win32api在Python中实现系统信息获取的方法

发布时间:2024-01-07 15:01:04

在Python中,可以使用win32api模块获取系统信息。下面将介绍如何使用win32api获取计算机的硬件和操作系统信息。

首先,需要安装pywin32模块,可以使用pip安装:

pip install pywin32

然后,可以使用如下代码来获取系统信息:

import platform
import win32api

def get_system_info():
    system_info = {}
    # 获取操作系统名称和版本号
    system_info["os_name"] = platform.system()
    system_info["os_version"] = platform.version()
    
    # 获取计算机名称
    system_info["computer_name"] = win32api.GetComputerName()
    
    # 获取 CPU 信息
    system_info["cpu_name"] = platform.processor()
    
    # 获取内存大小
    total_memory = win32api.GlobalMemoryStatus()["TotalPhysical"]
    system_info["memory_size"] = round(total_memory / 1024 / 1024 / 1024, 2)
    
    # 获取硬盘信息
    drives = win32api.GetLogicalDriveStrings()
    drives = drives.split('\000')[:-1]
    for drive in drives:
        drive_info = {}
        drive_type = win32api.GetDriveType(drive)
        drive_info["drive_name"] = drive
        drive_info["drive_type"] = drive_type
        
        # 只获取固定磁盘的信息
        if drive_type == win32api.DRIVE_FIXED:
            drive_info["drive_total_size"] = round(win32api.GetDiskFreeSpaceEx(drive)[0] / 1024 / 1024 / 1024, 2)
            system_info[drive] = drive_info
    
    return system_info

上述代码定义了一个get_system_info函数,该函数通过调用win32api函数获取操作系统名称、版本号、计算机名称、CPU信息、内存大小和硬盘信息等系统信息,并将其保存在一个字典中进行返回。

下面是一个使用示例,在控制台打印系统信息:

system_info = get_system_info()

print("操作系统名称:", system_info["os_name"])
print("操作系统版本号:", system_info["os_version"])
print("计算机名称:", system_info["computer_name"])
print("CPU信息:", system_info["cpu_name"])
print("内存大小(GB):", system_info["memory_size"])

for drive, drive_info in system_info.items():
    if drive.startswith("C:"):
        print("
C盘信息:")
        print("磁盘名称:", drive_info["drive_name"])
        print("磁盘类型:", drive_info["drive_type"])
        print("磁盘总大小(GB):", drive_info["drive_total_size"])

在这个示例中,get_system_info函数返回的系统信息字典中,我们只选择了C盘的信息进行打印。

通过调用win32api模块的相关函数,可以实现获取更多的系统信息,如网络信息、显卡信息等。根据具体的需求,可以进一步扩展上述代码来获取更多的系统信息并进行处理。