下面是一个使用Python语言来比较CSV文件并删除所有首次出现的重复项的示例代码:
import csv
def compare_and_delete_duplicates(csv_file):
# 用于存储已经出现过的数据
unique_data = []
# 用于存储需要删除的行索引
rows_to_delete = []
with open(csv_file, 'r') as file:
reader = csv.reader(file)
headers = next(reader) # 获取CSV文件的标题行
for row_index, row in enumerate(reader):
if row not in unique_data:
unique_data.append(row)
else:
rows_to_delete.append(row_index)
# 如果有需要删除的行,则创建一个新的CSV文件,将不需要删除的行写入其中
if rows_to_delete:
with open('new_file.csv', 'w', newline='') as new_file:
writer = csv.writer(new_file)
writer.writerow(headers) # 写入标题行
for row_index, row in enumerate(unique_data):
if row_index not in rows_to_delete:
writer.writerow(row)
print('删除了{}行重复数据,已保存到new_file.csv'.format(len(rows_to_delete)))
else:
print('没有重复数据。')
# 调用示例
compare_and_delete_duplicates('data.csv')
这段代码首先打开CSV文件并创建一个CSV reader对象。然后,它通过遍历CSV文件的每一行来比较数据。如果一行数据不在unique_data
列表中,则将其添加到列表中;否则,将行索引添加到rows_to_delete
列表中。
最后,如果有需要删除的行,则创建一个新的CSV文件,并将不需要删除的行写入其中。新文件名为new_file.csv
。如果没有重复数据,则直接打印出相应信息。
请确保在运行代码之前将data.csv
替换为你自己的CSV文件路径。