Python提取文本Layer耗时配对时如何关联C1/D1分组标识生成目标DataFrame
问题根源
现有代码直接对全文件内容做全局正则匹配,完全丢失了行级上下文的关联逻辑——每个Cx,Dx标签会管辖后续直到下一个标签出现前的所有Layer条目,全局抓取时没有跟踪这种管辖关系,自然无法给每个Layer条目绑定对应的分组信息。
可落地实现
调整解析逻辑为逐行扫描,持续跟踪当前生效的分组标签,在抓取每个Layer条目时同步绑定其所属分组,完整代码如下:
import re import pandas as pd # 存储结构化结果 all_entries = [] # 记录当前最新的有效分组标识 active_group = None with open('text.txt', 'r', encoding='utf-8') as file: for raw_line in file: line = raw_line.strip() # 匹配行首的分组标签(如C1,D1) group_tag = re.match(r'^(C\d+,D\d+)', line) if group_tag: active_group = group_tag.group(1) # 抓取当前行内所有Layer与耗时的配对,兼容行内同时存在分组和Layer条目的场景 matched_pairs = re.findall(r'(Layer_\d+)\s,\s(\d+\.\d+)ms', line) for layer_id, cost_value in matched_pairs: all_entries.append({ 'group_tag': active_group, 'layer_name': layer_id, 'cost_ms': float(cost_value) }) # 生成目标DataFrame df = pd.DataFrame(all_entries)
输出效果
生成的DataFrame包含3列,完全匹配预期:
group_tag列:存储每个Layer对应的前置分组标识,自动完成跨2行的Layer条目分组关联(比如C1,D1下的Layer_00到Layer_09跨2行存储,会全部绑定C1,D1标识,遇到C2,D2后后续条目自动切换绑定关系)layer_name列:存储Layer编号,和原代码抓取的内容完全一致cost_ms列:存储转换为浮点数的Layer耗时数值
内容的提问来源于stack exchange,提问作者user15621727
相关产品推荐
相关产品推荐

