Различие между xreadlines и for-looping файла
Наличие файлового объекта в Python 2.7:
f = open('my_file', 'r')
В чем разница между циклом для файла (наиболее распространенным способом) и использованием функции xreadlines()
:
for line in f:
# Do something with line
и
for line in f.xreadlines():
# Do something with line
Я имею в виду, что обе опции определяют генератор, в отличие от функций readlines()
или read()
, которые загружают все содержимое файла в память.
Есть ли какая-либо производительность или улучшение обработки файлов в любом из них? Или это просто эквивалентные способы сделать то же самое?
Ответы
Ответ 1
От docs.python.org
file.xreadlines()
This method returns the same thing as iter(f).
New in version 2.1.
Deprecated since version 2.3: Use for line in file instead.
... и лучше использовать ключевое слово with
при работе с файлами; снова просмотрите страницу документов.
with open('my_file', 'r') as f:
for line in f:
# do stuff