Python中的WMI查询问题

Python中的WMI查询问题,python,wmi,wmi-query,Python,Wmi,Wmi Query,我最近正在编写一个Squish测试脚本,并尝试执行解决方案中描述的操作: 我的代码中的相关片段如下所示: def measureMemory(): w = wmi.WMI('.') result = w.query("SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process WHERE Name=\"some_program\"") print result for WorkingSet in resul

我最近正在编写一个Squish测试脚本,并尝试执行解决方案中描述的操作:

我的代码中的相关片段如下所示:

def measureMemory():
    w = wmi.WMI('.')
    result = w.query("SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process WHERE Name=\"some_program\"")
    print result
    for WorkingSet in result:
        print WorkingSet
    subset = result[0]
    print subset['WorkingSet']
    # return result[0]['WorkingSet']

for i in range(50):
    memory = measureMemory()
    if memory:
        # test.passes("%d memory used during undo." % memory)
        print memory
不幸的是,每当我真正尝试运行这个东西时,我都会遇到一个错误,如下所示

[<_wmi_object: \\USER-PC\root\cimv2:Win32_PerfRawData_PerfProc_Process.Name="some_program">]

instance of Win32_PerfRawData_PerfProc_Process
{
    Name = "some_program";
    WorkingSet = "19386368";
};

Traceback (most recent call last):
  File "C:\Python26\Test scripts\Testify", line 25, in -toplevel-
    memory = measureMemory()
  File "C:\Python26\Test scripts\Testify", line 19, in measureMemory
    print subset['WorkingSet']
  File "C:\Python24\Lib\site-packages\win32com\client\dynamic.py", line 242, in __getitem__
    raise TypeError("This object does not support enumeration")
TypeError: This object does not support enumeration
[]
Win32_PerfRawData_PerfProc_进程的实例
{
Name=“some_程序”;
WorkingSet=“19386368”;
};
回溯(最近一次呼叫最后一次):
文件“C:\Python26\Test scripts\authentic”,第25行,在-toplevel中-
内存=度量内存()
measureMemory中第19行的文件“C:\Python26\Test scripts\authentic”
打印子集['WorkingSet']
文件“C:\Python24\Lib\site packages\win32com\client\dynamic.py”,第242行,在\uu getitem中__
raise TypeError(“此对象不支持枚举”)
TypeError:此对象不支持枚举
我不确定这为什么会抛出一个错误,因为我认为我没有从我的代码示例中改变任何重要的内容。
我正在使用Python2.4.4,如果这很重要的话,不幸的是,我无法真正升级,不管它有多大帮助。

WMI语法似乎与示例有所不同。尝试使用subset.WorkingSet而不是subset['WorkingSet']