Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 9, 2012 13:49:50

mishanya
Зарегистрирован: 2012-03-30
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

много вопросов по sorted и итерациям

Итак,вопросы:
Предположим имеем файл больше оперативной памяти c огромным количеством строк (есть пустые строки)

1)sorted() занимает оперативку?т.е. он файл целиком в себя пихает и сортирует или там реализация что-то типа пузырьковой при которой потребление оперативки мизерное?

т.е. можно например записать построчно сортированный файл(размер начального больше оперативки в другой файл?или выдаст ошибку что оперативки не хватает?)
пример:

for line in sorted(open('f1.txt','r')):
    open('f4.txt','a').write(line)     


2)при построчном чтении с помощью readline() мы можем остановить цикл такой конструкцией:
f = open(filename)
while True:
    line = f.readline()
    if not line: break  #остановка поскольку конец файла(знаем что тут конец)

можно ли как-то узнать что конец файла наступил если чтение идёт при помощи такой записи?
for line in open(file):
    #как можно сделать проверку условия конца файла?или никак при такой?

Отредактировано mishanya (Апрель 9, 2012 15:19:32)

Офлайн

#2 Апрель 9, 2012 17:09:38

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

много вопросов по sorted и итерациям

Если вопрос только о сортировке то вот

Офлайн

#3 Апрель 9, 2012 21:47:07

Romiss
От:
Зарегистрирован: 2011-11-01
Сообщения: 26
Репутация: +  4  -
Профиль   Отправить e-mail  

много вопросов по sorted и итерациям

mishanya
можно ли как-то узнать что конец файла наступил если чтение идёт при помощи такой записи?
for line in open(file):
    #как можно сделать проверку условия конца файла?или никак при такой?

Цикл for вызывает метод next() в каждой итерации и определяет момент выхода по исключению StopIteration. Т.е. for сам определяет когда настанет конец файла…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version