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

确保没有重复的行写入CSV Python,python,csv,Python,Csv,目前,我正在使用以下代码将数据集中的行写入CSV文件: with open('Private-Jet-Data.csv', 'a') as f: writer = csv.writer(f,delimiter=",") for row in data: writer.writerow(row) 是否有更有效的方法确保文件中没有任何一行与另一行重复,而不首先打开文件并对我的数据列表中的每一行遍历整个文件?不,这是不可能的 您需要将数据保存在内存中的某个位置以进行比

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

with open('Private-Jet-Data.csv', 'a') as f:
    writer = csv.writer(f,delimiter=",")
    for row in data:
        writer.writerow(row)
是否有更有效的方法确保文件中没有任何一行与另一行重复,而不首先打开文件并对我的
数据
列表中的每一行遍历整个文件?

不,这是不可能的

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

还要注意的是,在当前的代码片段中,您无法与
.csv
文件中的条目进行比较。

您只需将“可见”值动态添加到集合中即可:

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)

它比两次读取源文件效率更高,但如果处理大文件,它仍会占用一些内存

我不认为这是OP的要求。实际上,他在文件中有一些数据(称为dataset_A),他在脚本中生成了更多的数据(称为dataset_B),现在只想将dataset_B中不在dataset_A中的那些值打印到文件中。基本上,
dataset_B-dataset_A.crossion(dataset_B)