如何解析存储在变量中的系统进程数据以查找特定进程?
查找系统特定进程的实现方案
要查找系统中运行的特定进程,我们可以通过调用系统命令获取进程列表,再解析数据筛选出目标进程。以下是具体实现代码及优化说明:
import subprocess # 调用TASKLIST命令获取CSV格式的进程列表 output = subprocess.check_output(('TASKLIST', '/FO', 'CSV')).decode() # 去除多余引号并按行分割 output = output.replace('"', '').split('\r\n') # 获取表头字段 keys = output[0].split(',') # 处理每行进程数据,过滤空行 proc_list = [i.split(',') for i in output[1:] if i] # 构建进程字典:键为进程名,值为进程详细信息的字典 proc_dict = dict((i[0], dict(zip(keys[1:], i[1:]))) for i in proc_list) # 按进程名小写排序并打印所有进程名 for name, values in sorted(proc_dict.items(), key=lambda x: x[0].lower()): print(name)
快速定位特定进程
如果要找到指定名称的进程(比如notepad.exe),可以直接利用字典的键查询特性,添加以下筛选逻辑:
target_proc = "notepad.exe" if target_proc in proc_dict: print(f"找到目标进程:{target_proc}") print(f"进程详情:{proc_dict[target_proc]}") else: print(f"未找到进程:{target_proc}")
代码逻辑说明
- 借助
subprocess.check_output调用Windows系统的TASKLIST命令,通过/FO CSV参数指定输出格式为CSV,便于后续解析。 - 移除CSV内容中的多余引号,避免分割数据时出现异常。
- 将表头与每行进程数据映射为嵌套字典结构,实现通过进程名快速查询PID、内存占用等详细信息的功能。
内容的提问来源于stack exchange,提问作者Satyam_s3
相关产品推荐
相关产品推荐

