В Python, зачем нам нужны readlines(), когда мы можем перебирать сам дескриптор файла?
В Python после
fh = open('file.txt')
для перебора строк можно сделать следующее:
for l in fh:
pass
Тогда почему мы имеем fh.readlines()
?
Ответы
Ответ 1
Я бы предположил, что он из файлов раньше был итератором и поддерживается для обратной совместимости. Даже для однострочного, он полностью 1 довольно избыточный, поскольку list(fh)
сделает то же самое более интуитивным способом. Это также дает вам свободу делать set(fh)
, tuple(fh)
и т.д.
1 См. ответ gnibbler.
Ответ 2
В основном, для обратной совместимости. readlines был там, прежде чем объекты файла были итерируемыми
Использование readlines с аргументом size также является одним из самых быстрых способов чтения из файлов, поскольку он считывает кучу данных одним ударом, но не требует выделения памяти для всего файла одновременно
Ответ 3
readlines()
возвращает список строк, которые вы можете захотеть, если вы не планируете выполнять итерацию по каждой строке.