CSV文件处理:忽略行尾元素进行行内容匹配并拆分文件
解决CSV按行内容(忽略最后一列)归类的问题
核心解决方案
直接用切片语法row[:-1]就能获取每行除最后一个元素外的所有内容,完全可以用这个作为行内容匹配的依据。当你把CSV每行读取为列表后,row[:-1]会自动剔除末尾的唯一文件名元素,剩下的部分就可以用来判断行内容是否一致,进而完成分组归类。
举个Python实现的简单示例:
import csv from collections import defaultdict # 用字典存储分组,键为去掉最后一列的行内容(转成元组,因为列表不能作为字典键),值为对应行的列表 row_groups = defaultdict(list) # 读取原始CSV文件 with open('input.csv', 'r', newline='') as in_file: csv_reader = csv.reader(in_file) for row in csv_reader: # 用row[:-1]生成分组键 group_key = tuple(row[:-1]) row_groups[group_key].append(row) # 将每个分组写入独立文件 for group_num, (_, rows) in enumerate(row_groups.values(), start=1): with open(f'group_{group_num}.csv', 'w', newline='') as out_file: csv_writer = csv.writer(out_file) csv_writer.writerows(rows)
标记问题已解决的操作步骤
作为首次提问,你可以通过以下方式标记问题已解决:
- 如果你是自己找到的解决方案,可以把这个方法写成一个自答,然后点击回答下方的「Accept Answer」(接受答案)按钮;如果有其他用户的回答符合你的需求,直接接受对应回答即可
- 也可以在问题标题前添加
[Solved]标签,让其他用户一眼就能识别这是已解决的问题
内容的提问来源于stack exchange,提问作者EldritchOstrich
相关产品推荐
相关产品推荐

