python - 从 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
coem 来自哪里,即使我可以确认它们存在。
如何获取这些命名元组变量的列表?
解决方案
我是个傻瓜 -cpu
来自对象的变量cpus
已命名为类中定义的元组Win32_Processor
。
https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor
推荐阅读
- android - Android:如何在按下按钮时关闭一个活动并在按下另一个按钮时关闭整个后台堆栈?
- python-3.x - 在 3 个生成的列表中分配 2 个整数列表的总和,使得从两个列表中考虑的唯一元素
- java - 缩小时如何将图像返回到原始位置 - AndroidX
- typescript - TypeScript - 元组联合的类型断言 - 如何只断言一个成员并使 TS 找出其他成员的类型?
- react-native - 如何解决 TypeError:无法读取 null 的属性“scrollTo”(由于本机基本选项卡反应本机而发生)?
- powershell - 无法获取 Get-Aduser 的完整注释/信息部分
- python - Python 执行 cmd 并存储它返回的任何内容
- python - 使用唯一值数组过滤熊猫数据框
- angular - 带有模板参考同步问题的角度 5 验证
- shell - 将文件夹和子文件夹的多个文件移动和重命名到新文件夹中