读取含重复词汇的CSV文件并去重写入新CSV的实现方案
处理CSV文件的词汇去重与统计方案
直接用Python标准库的csv模块配合集合就能搞定,比用collections或functools更直接——集合天然支持去重,刚好匹配你的需求。
完整代码
import csv def process_csv(input_path, output_path): unique_terms = set() # 读取原CSV,收集所有不重复词汇 with open(input_path, 'r', encoding='utf-8') as infile: reader = csv.reader(infile) for row in reader: if not row: # 跳过空行 continue unique_terms.update(row) # 输出统计结果 print(f"{input_path} 中不同词汇的数量:{len(unique_terms)}") # 写入去重后的新CSV with open(output_path, 'w', encoding='utf-8', newline='') as outfile: writer = csv.writer(outfile) # 按字母顺序排序后写入,也可以去掉sorted()保持原始出现顺序 writer.writerow(sorted(unique_terms)) # 调用示例,替换成你的文件路径 if __name__ == "__main__": process_csv("your_input.csv", "your_output.csv")
关键说明
- 去重逻辑:集合
set会自动忽略重复元素,遍历每行把所有词汇加入集合,最终就能得到所有不重复的内容 - 空行处理:判断
if not row跳过空行,避免读取到无效的空数据 - 输出格式:用
csv.writer把去重后的词汇作为一行写入新文件,和你给出的示例输出格式一致
针对你的示例调整
如果你的输入里的数字1是不需要保留的(看你示例输出里没有它),可以在收集词汇时加个过滤:
unique_terms.update(term for term in row if not term.isdigit())
这样处理后,你的示例输入就会输出Praske -OK,Koda,Referenca,完全匹配期望结果。
内容的提问来源于stack exchange,提问作者CH4
相关产品推荐
相关产品推荐

