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

Python实现逐行提取CSV内容并保存为独立文本文件求助

解决CSV逐行保存为独立文本文件的问题

核心代码实现

先确保导入csv模块,通过enumerate记录行号,将每一行内容写入对应命名的文本文件:

import csv

with open('output.csv', 'r', encoding='utf-8') as read_obj:
    csv_dict_reader = csv.DictReader(read_obj)
    # 从1开始计数,生成line1.txt、line2.txt等文件名
    for line_num, row in enumerate(csv_dict_reader, start=1):
        # 按需拼接内容,保留你原代码中关注的两个字段
        content = f"{row['DOC_TYPE']}\n{row['EXTRACTED_TEXT']}"
        # 生成目标文件名
        filename = f"line{line_num}.txt"
        # 写入文本文件
        with open(filename, 'w', encoding='utf-8') as write_obj:
            write_obj.write(content)

你之前尝试的问题解释

  1. headers=next(file_data)无效:DictReader会自动读取CSV第一行作为表头,无需额外调用next(),否则会跳过第一行数据,导致仅处理后续内容。
  2. print(row['EXTRACTED_TEXT'][0])不生效:row['EXTRACTED_TEXT']是字符串类型,[0]只会取该字符串的第一个字符,而非整行内容,因此达不到预期效果。

可选:包含表头行的保存方式

如果需要把CSV的表头行也保存为line1.txt,可以先单独处理表头,再遍历数据行:

import csv

with open('output.csv', 'r', encoding='utf-8') as read_obj:
    # 读取并保存表头行
    header_line = read_obj.readline().strip()
    with open('line1.txt', 'w', encoding='utf-8') as f:
        f.write(header_line)
    
    # 初始化DictReader,指定表头字段
    csv_dict_reader = csv.DictReader(read_obj, fieldnames=header_line.split(','))
    # 数据行从line2.txt开始计数
    for line_num, row in enumerate(csv_dict_reader, start=2):
        content = f"{row['DOC_TYPE']}\n{row['EXTRACTED_TEXT']}"
        filename = f"line{line_num}.txt"
        with open(filename, 'w', encoding='utf-8') as write_obj:
            write_obj.write(content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:54:28