Я пытаюсь объединить два БОЛЬШИХ входных файла в один вывод, сортируя по ходу дела.
## Above I counted the number of lines in each table
print("Processing Table Lines: table 1 has " + str(count1) + " and table 2 has " + str(count2) )
newLine, compare, line1, line2 = [], 0, [], []
while count1 + count2 > 0:
if count1 > 0 and compare <= 0: count1, line1 = count1 - 1, ifh1.readline().rstrip().split('\t')
else: line1 = []
if count2 > 0 and compare >= 0: count2, line2 = count2 - 1, ifh2.readline().rstrip().split('\t')
else: line2 = []
compare = compareTableLines( line1, line2 )
newLine = mergeLines( line1, line2, compare, tIndexes )
ofh.write('\t'.join( newLine + '\n'))
Что я ожидаю, так это то, что когда строки записываются на вывод, я вытаскиваю следующую строку в файле, в котором я читал, если он доступен.Я также ожидаю, что цикл отключится, когда оба файла станут пустыми.
Однако я продолжаю получать эту ошибку: ValueError: Смешивание итераций и методов чтения приведет к потере данных
Я просто не понимаю, какобойти это.Любой файл слишком велик, чтобы его можно было сохранить в памяти, поэтому я хочу прочитать его на ходу.