You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按进程分组打印字典中存储的Windows进程名称与对应属性值

语法错误修正

你原有get_processes函数存在语法错误,执行WMI查询的行缺少字符串闭合引号,修正如下:

# 原错误写法
colprocs = wmi.ExecQuery("Select * from Win32_Process)
# 修正后写法
colprocs = wmi.ExecQuery("Select * from Win32_Process")

方案1:不修改原函数,调整打印逻辑

你返回的字典中,Caption和Creation Date两个列表的相同索引对应同一个进程的两个属性,按索引遍历即可实现按进程分组输出:

d = get_processes()
for idx in range(len(d["Caption"])):
    print(f"Process {idx+1}...")
    print(f"Caption: {d['Caption'][idx]}")
    print(f"Creation Date: {d['Creation Date'][idx]}")
    # 进程之间增加空行分隔
    print()

方案2:优化原函数返回结构(更推荐)

如果可以调整原函数的返回格式,建议改为返回单进程字典组成的列表,无需依赖索引对应属性,后续扩展性更强:

修改后的函数代码

from win32com.client import GetObject
wmi = GetObject("winmgmts:")
def get_processes():
    process_list = []
    colprocs = wmi.ExecQuery("Select * from Win32_Process")
    for item in colprocs:
        # 每个进程单独存为一个字典
        process_list.append({
            "Caption": item.Caption,
            "Creation Date": item.CreationDate
        })
    return process_list

对应打印代码

d = get_processes()
for idx, proc in enumerate(d, start=1):
    print(f"Process {idx}...")
    print(f"Caption: {proc['Caption']}")
    print(f"Creation Date: {proc['Creation Date']}")
    print()

内容的提问来源于stack exchange,提问作者adlud06

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:45:09