Для текстового файла просто итерация по нему с циклом for
- это почти всегда путь.Не берите в голову скорость, она самая чистая.
В некоторых версиях python readline()
действительно читает только одну строку, в то время как цикл for
читает большие порции и разбивает их на строки, так что это может бытьБыстрее.Я думаю, что более поздние версии Python используют буферизацию и для readline()
, поэтому разница в производительности будет крошечной (for
, вероятно, все еще микроскопически быстрее, поскольку избегает вызова метода).Однако выбор одного из других по соображениям производительности, вероятно, является преждевременной оптимизацией.
Изменить, чтобы добавить: я только что проверил некоторые заметки о выпуске Python.В Python 2.5 сказано:
Теперь нельзя смешивать итерации по файлу со строкой for в файле и вызывать методы объекта read () / readline () / readlines () объекта файла.
Python 2.6 представил TextIOBase, который поддерживает итерации и readline()
одновременно.
Python 2.7 с фиксированным чередованием read()
и readline()
.