Форум сайта python.su
0
Итак,вопросы:
Предположим имеем файл больше оперативной памяти c огромным количеством строк (есть пустые строки)
1)sorted() занимает оперативку?т.е. он файл целиком в себя пихает и сортирует или там реализация что-то типа пузырьковой при которой потребление оперативки мизерное?
т.е. можно например записать построчно сортированный файл(размер начального больше оперативки в другой файл?или выдаст ошибку что оперативки не хватает?)
пример:
for line in sorted(open('f1.txt','r')): open('f4.txt','a').write(line)
f = open(filename) while True: line = f.readline() if not line: break #остановка поскольку конец файла(знаем что тут конец)
for line in open(file): #как можно сделать проверку условия конца файла?или никак при такой?
Отредактировано mishanya (Апрель 9, 2012 15:19:32)
Офлайн
25
Если вопрос только о сортировке то вот
Офлайн
4
mishanyaЦикл for вызывает метод next() в каждой итерации и определяет момент выхода по исключению StopIteration. Т.е. for сам определяет когда настанет конец файла…
можно ли как-то узнать что конец файла наступил если чтение идёт при помощи такой записи?for line in open(file): #как можно сделать проверку условия конца файла?или никак при такой?
Офлайн