确保没有重复的行写入CSV Python

时间:2014-07-17 17:50:14

标签: python csv

目前,我正在使用以下代码将数据集中的行写入CSV文件:

with open('Private-Jet-Data.csv', 'a') as f:
    writer = csv.writer(f,delimiter=",")
    for row in data:
        writer.writerow(row)

是否有一种更有效的方法可以确保文件中没有行与另一行重复,而无需先打开文件并遍历data列表中每一行的整个文件?

2 个答案:

答案 0 :(得分:1)

不,不可能。

您需要将数据保存在内存中的某个位置以进行比较,这意味着您必须从文件中读取以前的数据,并仅附加不存在的数据集。

另请注意,在您当前的代码段中,您无法与.csv文件中的条目alerady进行比较。

答案 1 :(得分:0)

你可以添加"看到"动态值集:

with open('Private-Jet-Data.csv', 'a') as f:
    writer = csv.writer(f,delimiter=",")
    seen = set()
    for row in data:
        if row in seen:
            continue 
        writer.writerow(row)
        seen.add(row)

它比阅读源文件两次更有效,但如果您正在处理大文件,它仍然会占用一些内存。