出于我的目的,在实际处理行之前,我必须知道(CSV)文件中的行数。我在Google上搜索,发现文档说我应该创建两次迭代器(CSV.reader)(第一次用于计数,第二次用于处理行)。这是唯一的方法还是也许有一些技巧性的技巧可以做到?

感谢您的回答。

最佳答案

如果文件不是很大,可以尝试:

from csv import reader

def proceed(size):
    with open(filename) as f:
        data = list(csv.reader(f))
        if len(data) > size:
            return
        else:
            for line in data:
                #do action


weights = {'user1': 4, 'user2': 5}
for k,v in weights.iteritems():
    proceed(v)


或者,如果您的文件很大,则@georgesl建议:

def proceed(size):
    if sum(1 for row in csv.reader(open(filename))) > size:
        return
    else:
        for line in csv.reader(open(filename)):
            #do action

08-26 18:31
查看更多