Разница между xreadlines и для зацикливания файла - PullRequest
11 голосов
/ 19 декабря 2011

Наличие файлового объекта в 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 Ответ

20 голосов
/ 19 декабря 2011

С 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...