在csv python中查找元素的最佳方法

在csv python中查找元素的最佳方法,python,csv,Python,Csv,我有一个非常大的csv文件,有超过50K个条目,并且不断增加。我的文件具有以下结构: ID;name;battery;... 101;a,3.3;... 102;b,3.3;... 103;c,3.2;... 我知道如何在python中读取csv文件,但我想知道如果csv文件上有新条目,最好的方法是什么,以避免重写新行 我是这样做的: if new_id in open(log.csv).read(): 任何帮助或建议都将不胜感激 编辑:我想按ID进行筛选避

我有一个非常大的csv文件,有超过50K个条目,并且不断增加。我的文件具有以下结构:

    ID;name;battery;... 
    101;a,3.3;...
    102;b,3.3;...
    103;c,3.2;...
我知道如何在python中读取csv文件,但我想知道如果csv文件上有新条目,最好的方法是什么,以避免重写新行

我是这样做的:

if new_id in open(log.csv).read():
任何帮助或建议都将不胜感激


编辑:我想按ID进行筛选

避免重复的好方法是使用特殊的数据结构,针对搜索进行优化。例如,在Python中可以使用
set()
set()
基于哈希表,并提供具有时间复杂性的搜索
O(n)
。模式如下:

将现有ID从文件读入
set()

检查每个新行插入的条件:

# new_entry - is a new line
new_id = new_entry.split(',')[0] # get new id
if new_id not in entries:
    file.write(new_entry)  # Maybe newline appending is needed
    entries.add(new_id) # Update a set of existing rows

是否要检查整行
103;c、 3.2,…
在文件中,或者只是
id
?为了避免重写新行,您所说的
是什么意思。你到底想做什么?我想知道是否写了一个“ID”来决定写一行新词
# new_entry - is a new line
new_id = new_entry.split(',')[0] # get new id
if new_id not in entries:
    file.write(new_entry)  # Maybe newline appending is needed
    entries.add(new_id) # Update a set of existing rows