Python 枚举大型csv的加载不';他似乎没有被懒洋洋地评价

Python 枚举大型csv的加载不';他似乎没有被懒洋洋地评价,python,csv,Python,Csv,据我所知,enumerate的计算是惰性的,因为它可以应用于生成器,而且csv.reader也是惰性的,但是,当组合到一个大的csv文件上时,它们会使我的内核崩溃 这段代码挂起并最终使我的内核崩溃在一个非常大的文件上: with open(RAW_DATA) as file: csv_reader = csv.reader(file, delimiter=',') data = [] for row_idx, row in enumerate(csv_reader):

据我所知,enumerate的计算是惰性的,因为它可以应用于生成器,而且csv.reader也是惰性的,但是,当组合到一个大的csv文件上时,它们会使我的内核崩溃

这段代码挂起并最终使我的内核崩溃在一个非常大的文件上:

with open(RAW_DATA) as file:
    csv_reader = csv.reader(file, delimiter=',')
    data = []
    for row_idx, row in enumerate(csv_reader):
        data.append(row)
        if (row_idx + 1) % BLOCK_SIZE == 0:
            dump_data(data)
            data = []
但是,此代码工作正常,每个循环大约需要2秒:

with open(RAW_DATA) as file:
    csv_reader = csv.reader(file, delimiter=',')
    data = []
    row_idx = 0
    for row in csv_reader:
        data.append(row)
        row_idx += 1
        if row_idx % BLOCK_SIZE == 0:
            dump_data(data)
            data = []
这对我来说没有意义——我认为假设惰性评估,它们在功能上是等价的