确保没有重复的行写入CSV Python
目前,我正在使用以下代码将数据集中的行写入CSV文件:确保没有重复的行写入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) 是否有更有效的方法确保文件中没有任何一行与另一行重复,而不首先打开文件并对我的数据列表中的每一行遍历整个文件?不,这是不可能的 您需要将数据保存在内存中的某个位置以进行比
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)