如何解决从 win32com.client.CDispatch 对象获取命名元组变量
我正在尝试使用 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
的来源,即使我可以确认它们存在。
如何获得这些命名元组变量的列表?
解决方法
我是个傻瓜 - cpu
对象中的 cpus
变量已命名为 Win32_Processor
类中定义的元组。
https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。