Мне нужно прочитать большой файл, строка за строкой. Допустим, файл имеет более 5 ГБ, и мне нужно прочитать каждую строку, но, очевидно, я не хочу использовать, readlines()потому что это создаст очень большой список в памяти.
Как будет работать код ниже для этого случая? Читает ли xreadlinesсам по себе в память? Нужно ли выражение генератора?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
Кроме того, что я могу сделать, чтобы прочитать это в обратном порядке, так же, как команда Linux tail?
Я нашел:
http://code.google.com/p/pytailer/
и
« голова питона, хвост и назад читаются по строкам текстового файла »
Оба работали очень хорошо!