文本文件Regex解析:提取指定区间注释内容生成Pandas DataFrame
实现代码
你可以结合正则匹配直接提取注释内的目标内容,完整实现如下:
import pandas as pd from io import StringIO fn = r'C:\Users\asdert\Downloads\Network.RAW' # 更稳妥的文件读取写法,自动管理文件句柄 with open(fn, 'r', encoding='utf-8', errors='ignore') as f: content = f.read() # 截取目标区间的文本 start = content.find('END OF ONE DATA, BEGIN SECOND DATA') end = content.find('END OF SECOND DATA, BEGIN THIRD DATA') branch_data = content[start:end] # 读取为单列DataFrame,避免把第一行识别为列名 df = pd.read_csv(StringIO(branch_data), sep='\n', header=None, names=['raw_line']) # 提取注释中的名称,去除前后空格后过滤无效行,生成目标DataFrame result_df = df['raw_line'].str.extract(r'/\*\[(.+?)\]\s*\*/')[0]\ .str.strip()\ .dropna()\ .reset_index(drop=True)\ .to_frame(name='name') # 输出结果验证 print(result_df)
逻辑说明
- 正则规则
/\*\[(.+?)\]\s*\*/专门匹配/*[xxx]*/格式的注释,自动提取[和]中间的内容 - 不包含目标注释的行匹配后会生成空值,用
dropna直接过滤即可 - 如果读取文件出现编码报错,可把
encoding='utf-8'替换为encoding='gbk'适配Windows系统下的常见编码格式
内容的提问来源于stack exchange,提问作者Zanam
相关产品推荐
相关产品推荐

