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)
你之前尝试的问题解释
headers=next(file_data)无效:DictReader会自动读取CSV第一行作为表头,无需额外调用next(),否则会跳过第一行数据,导致仅处理后续内容。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
相关产品推荐
相关产品推荐

