Я заметил, что если я перебираю файл, который я открыл, гораздо быстрее перебирать его без «чтения».Python: Когда я должен когда-либо использовать file.read() или file.readlines()?
т.е.
l = open('file','r')
for line in l:
pass (or code)
гораздо быстрее, чем
l = open('file','r')
for line in l.read()/l.readlines():
pass (or code)
2-й петли займет около 1.5x, как много времени (я использовал timeit над точно такой же файл, и результаты были 0,442 против 0,660), и даст тот же результат.
Итак - когда я должен когда-либо использовать .read() или .readlines()?
Так как мне всегда нужно перебирать файл, который я читаю, и после того, как я усердно изучил, насколько болезненно медленный .read() может быть на больших данных - я не могу себе представить, чтобы он когда-либо использовал его снова.
Просьба уточнить. является измерением 'timeit' для' read' или для 'readlines'?Я бы ожидал, что цикл 'read' займет больше времени, потому что он возвращает одну строку, поэтому повторение по ней будет проходить по-символу. Если ваш файл имеет в среднем 100 символов в строке, то код в цикле 'for line in l.read() будет выполняться в сто раз больше, чем код в цикле' for line in l: '. – Kevin
это также для readlines(). Удивительно, что почти нет разницы во времени между read() или readlines() ... –