如何在Windows上读取Python中的系统信息?

2024-06-16 08:24:28 发布

您现在位置:Python中文网/ 问答频道 /正文

根据这个OS-agnostic question,特别是this response,类似于Linux上/proc/meminfo之类的数据,我如何使用Python从Windows读取系统信息(包括但不限于内存使用)。


Tags: 数据内存信息osresponselinuxwindows系统
3条回答

在Windows中,如果您想从SYSTEMINFO命令获得类似的信息,可以使用WMI module.

import wmi

c = wmi.WMI()    
systeminfo = c.Win32_ComputerSystem()[0]

Manufacturer = systeminfo.Manufacturer
Model = systeminfo.Model

。。。

类似地,操作系统相关信息可以从osinfo = c.Win32_OperatingSystem()[0]中获取 system info is hereos info is here的完整列表

您可以尝试使用我刚才创建的systeminfo.exe包装器,它有点不正规,但它似乎很容易做到,而且没有太多代码。

这应该可以在2000/XP/2003服务器上运行,并且应该可以在Vista和Win7上运行,前提是它们带有systeminfo.exe并且位于路径上。

import os, re

def SysInfo():
    values  = {}
    cache   = os.popen2("SYSTEMINFO")
    source  = cache[1].read()
    sysOpts = ["Host Name", "OS Name", "OS Version", "Product ID", "System Manufacturer", "System Model", "System type", "BIOS Version", "Domain", "Windows Directory", "Total Physical Memory", "Available Physical Memory", "Logon Server"]

    for opt in sysOpts:
        values[opt] = [item.strip() for item in re.findall("%s:\w*(.*?)\n" % (opt), source, re.IGNORECASE)][0]
    return values

您可以很容易地将其余的数据字段追加到sysOpts变量,但不包括那些为其结果提供多行的数据字段,如CPU&NIC信息。regexp行的简单mod应该能够处理这个问题。

享受吧!

有人问了一个类似的问题:

How to get current CPU and RAM usage in Python?

有很多答案告诉你如何在windows中实现这一点。

相关问题 更多 >