Python, реализация очереди
Имеется файл заведомо огромный, прочесть полностью нельзя- оперативы если и хватит то мне не простят расточительности. Мне надо забрать из файла последние N строк (что б в дальнейшем усреднить данные в этих строках по N). Если они будут в каком то непоследовательном и неупорядоченном виде то я Ок с этим, главное что б это были точно последние N штук из файла.
Идея моей реализации: для поиска я пользуюсь генератором .readline(). Думаю реализовать очередь, инициализируемую пустой с ограничителем N штук элементов в ней. Списком с использованием pop и insert не хочу пользоваться, поскольку он будет кучу раз перезаписываться в памяти. Поэтому хочу заполнять очередь, как только в ней будет N элементов начну убирать первый и присоединять новый как последний.
Написал класс Line:
class Line:
def __init__(self, line, child_l=None, child_r=None):
self.line = line
self.child_l = child_l
self.child_r = child_r
Теперь нужен сам class для очереди, которая будет заполняться экземплярами Line с нужными строками. НО! Если это будет какая то очередь а не дерево то встает вопрос рекурсии, а че если N = 1000000000, предел рекурсии и все дела. А если это дерево, то как каждый раз убирать первый? придётся кучу раз его перестраивать.