目前,我正在使用以下代码将数据集中的行写入CSV文件:
with open('Private-Jet-Data.csv', 'a') as f:
writer = csv.writer(f,delimiter=",")
for row in data:
writer.writerow(row)
是否有一种更有效的方法可以确保文件中没有行与另一行重复,而无需先打开文件并遍历data
列表中每一行的整个文件?
答案 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)
它比阅读源文件两次更有效,但如果您正在处理大文件,它仍然会占用一些内存。