Следующий код работает для файлов размером до 3 миллионов записей, но больше, чем это, у меня заканчивается память, потому что я читаю данные в списки, а затем использую списки для l oop и нахожу совпадения.
Из предыдущих сообщений я понял, что я должен обрабатывать каждую строку за раз через l oop, но не могу найти никаких сообщений о том, как взять строку за раз из файла CSV и обработать ее через два цикла итераций, как в моем коде ниже.
Любая помощь будет принята с благодарностью. Заранее благодарим вас.
import csv
# open two csv files and read into lists lsts and lstl
with open('small.csv') as s:
sml = csv.reader(s)
lsts = [tuple(row) for row in sml]
with open('large.csv') as l:
lrg = csv.reader(l)
lstl = [tuple(row) for row in lrg] # can be two large for memory
# find a match and print
for rows in lsts:
for rowl in lstl:
if rowl[7] != rows[0]: # if no match continue
continue
else:
print(rowl[7], rowl[2]) # when matched print data required from large file