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

如何从按空行分隔的列名:值格式TXT文件创建DataFrame

处理大体积键值对格式TXT转Pandas DataFrame的方案

针对你2GB的大文件,直接用pd.read_csv()或者一次性转字典都会因为内存问题失败,这里提供流式逐记录处理的方案,全程低内存占用:

核心思路

利用Python生成器逐行读取文件,攒出单条记录的字典后立即输出,不把整个文件加载到内存,避免内核崩溃。

代码实现

import pandas as pd

def parse_large_txt(file_path):
    current_record = {}
    with open(file_path, 'r', encoding='utf-8') as f:
        for line in f:
            stripped_line = line.strip()
            # 遇到空行时,判断是否完成一条记录的收集
            if not stripped_line:
                if current_record:
                    yield current_record
                    current_record = {}
            else:
                # 分割列名和值,maxsplit=1避免值里带冒号的情况
                col, val = stripped_line.split(': ', maxsplit=1)
                current_record[col] = val
        # 处理文件末尾无空行结尾的最后一条记录
        if current_record:
            yield current_record

# 生成器直接转DataFrame
df = pd.DataFrame(parse_large_txt('your_file.txt'))

关键说明

  1. 内存友好:生成器每次仅在内存中保留一条记录的字典,处理完就释放,不会占用大量内存
  2. 兼容格式:自动处理空行分隔的记录,同时兼容文件末尾无空行的情况
  3. 鲁棒性:用maxsplit=1分割键值对,避免值中包含冒号导致的分割错误

如果文件编码不是utf-8,可以修改open()函数的encoding参数(比如gbk)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:02:01