Python中如何将预处理后的单句写入独立TXT文件?(附错误代码)
问题分析与解决方案
你的代码核心问题是循环变量混淆:
- 初始化
i=0后,for i in sentences会把i替换成每个句子内容,导致文件名生成逻辑完全错误 - 循环内的
i +=1毫无意义,下一次循环i会被新的句子覆盖
修正后的代码
import os # 假设sentences是你的句子列表 sentences = ["这是第一个句子", "这是第二个句子", "这是第三个句子"] save_dir = "D:/codekpw/20_33_data2/pre-processing" # 确保保存目录存在,避免报错 os.makedirs(save_dir, exist_ok=True) for idx, sentence in enumerate(sentences, start=1): # 用索引生成三位数字的文件名,比如001.txt、002.txt file_path = os.path.join(save_dir, f"{idx:03d}.txt") with open(file_path, "w", encoding="utf-8") as f: f.write(sentence) print(f"成功创建文件:{file_path}")
关键修正点
- 使用
enumerate(sentences, start=1):同时获取索引和句子内容,索引用来生成有序文件名,start=1让文件名从1开始(如果需要从0开始可以去掉start参数) - 单独定义保存目录,代码更清晰,加上
os.makedirs确保目录存在,避免因目录不存在报错 - 直接写入
sentence(如果你的sentences列表元素已经是字符串,无需str()转换)
内容的提问来源于stack exchange,提问作者Tran Thi Diem Quynh
相关产品推荐
相关产品推荐

