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

从这个操作系统不可知的问题开始 ,特别是这个响应 ,类似于Linux上/ proc / meminfo类似的数据,我如何使用Python从Windows读取系统信息(包括但不限于内存使用情况)。

有一个类似的问题问:

如何在Python中获取当前的CPU和RAM使用情况?

有相当多的答案告诉你如何在Windows中完成这一点。

在Windows中,如果您想从SYSTEMINFO命令中获取信息,则可以使用WMI模块。

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

同样,os的相关信息可以从osinfo = c.Win32_OperatingSystem()[0] 系统信息的完整列表在这里 , os信息在这里

你可以尝试使用我之前创建的systeminfo.exe包装,这有点不正统,但它似乎很容易做到这一点,没有太多的代码。

这应该适用于2000 / XP / 2003 server,并且应该在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信息。 对正则表达式行的一个简单的mod应该能够处理。

请享用!