我正在尝试使用pywin32的win32com模块为给定的Windows机器获取有关系统的一些信息。
例如,这个脚本可以找到一个系统可能有多少CPU套接字,并告诉我每个套接字上有多少物理和逻辑内核。
import win32com.client
winmgmts_root = win32com.client.GetObject("winmgmts:root\cimv2")
cpus = winmgmts_root.ExecQuery("Select * from Win32_Processor")
for cpu in cpus:
print(cpu.NumberOfCores)
print(cpu.NumberOfLogicalProcessors)
问题是,当我试图查看循环中的cpu
对象时,这些变量并不存在:
for cpu in cpus:
for name in dir(cpu):
value = getattr(cpu, name)
print("name: {}".format(name))
print("value: {}".format(value))
这产生了大量以_
开头的方法,因此不应该使用它们,并且没有指示命名元组变量NumberOfCores
和NumberOfLogicalProcessors
的来源,即使我可以确认它们的存在。
如何获取这些命名元组变量的列表?
我是个傻瓜-cpus
对象中的cpu
变量具有Win32_Processor
类中定义的命名元组。
https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor