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

如何用Python读取大TXT文件中的多个指定数据块并整理为列表

Python提取大型TXT中指定数据块的解决方案

针对你的需求,我修改了代码,实现只提取每个data Information块内的指定字段,忽略无关内容,同时适配大型文件(逐行读取不占用过多内存):

# 定义需要提取的字段顺序
REQUIRED_FIELDS = ['ID', 'Number', 'Code', 'Branch', 'Source', 'Comments']

all_data = []
current_block = []
in_block = False

# 逐行读取文件,适合处理大型TXT
with open('myfile.txt', 'r') as file:
    for line in file:
        stripped_line = line.strip()
        
        # 检测数据块开始标记,开启提取状态
        if '- - - - - - data Information - - - - - - -' in stripped_line:
            in_block = True
            current_block = []
            continue
        
        # 检测数据块结束标记,保存当前块并退出提取状态
        if in_block and '************************************************' in stripped_line:
            # 确保Comments字段即使为空也能被补全
            if len(current_block) < len(REQUIRED_FIELDS):
                current_block.append(['Comments', ''])
            all_data.append(current_block)
            in_block = False
            continue
        
        # 在数据块内,处理带冒号的有效字段行
        if in_block and ':' in stripped_line:
            key, value = stripped_line.split(':', 1)  # 仅按第一个冒号分割,避免值内冒号干扰
            key = key.strip()
            value = value.strip()
            
            # 只保留指定字段,按顺序添加到当前块
            if key in REQUIRED_FIELDS:
                current_block.append([key, value if value else ''])

# 输出所有提取到的数据块
for idx, data_list in enumerate(all_data):
    print(f"数据块 {idx+1}:")
    print(data_list)

代码关键说明

  • 状态控制:用in_block变量标记是否处于有效数据块内,跳过所有无关行
  • 字段过滤:通过REQUIRED_FIELDS锁定目标字段,确保只提取需要的内容
  • 内存友好:逐行读取文件,无需一次性加载整个大文件到内存
  • 边界兼容:自动识别数据块的开始/结束标记,同时处理Comments字段为空的场景

输出格式示例(对应你提供的文件内容):

数据块 1:
[['ID', '000'], ['Number', '48889'], ['Code', '001'], ['Branch', '06789'], ['Source', 'Document1'], ['Comments', '']]
数据块 2:
[['ID', '001'], ['Number', '48890'], ['Code', '002'], ['Branch', '06789'], ['Source', 'Document2'], ['Comments', '']]
数据块 3:
[['ID', '002'], ['Number', '48891'], ['Code', '003'], ['Branch', '06789'], ['Source', 'Document2'], ['Comments', '']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:30:20