Подтвердить что ты не робот

В Python, зачем нам нужны readlines(), когда мы можем перебирать сам дескриптор файла?

В Python после

fh = open('file.txt')

для перебора строк можно сделать следующее:

for l in fh:
    pass

Тогда почему мы имеем fh.readlines()?

4b9b3361

Ответ 1

Я бы предположил, что он из файлов раньше был итератором и поддерживается для обратной совместимости. Даже для однострочного, он полностью 1 довольно избыточный, поскольку list(fh) сделает то же самое более интуитивным способом. Это также дает вам свободу делать set(fh), tuple(fh) и т.д.

1 См. ответ gnibbler.

Ответ 2

В основном, для обратной совместимости. readlines был там, прежде чем объекты файла были итерируемыми

Использование readlines с аргументом size также является одним из самых быстрых способов чтения из файлов, поскольку он считывает кучу данных одним ударом, но не требует выделения памяти для всего файла одновременно

Ответ 3

readlines() возвращает список строк, которые вы можете захотеть, если вы не планируете выполнять итерацию по каждой строке.