как открыть огромный текстовый файл?

есть огромный лог, около 50гб, есть программа на python которая бинарным поиском находит нужное место, и хочется вывести в окне оставшиюся часть(она может быть и 20гб) для дальнейшего скрола. на pyqt5 вариант отображать или как то лучше по другому чтобы скорость не падала? тоталкомандер хорошо с этим справляется, но нужно самописное)


Ответы (1 шт):

Автор решения: alex

1 - иметь ОЗУ больше чем размер файла

2 - софт должен отображать необходимое кол-во строк. и потом по какому то событию смещаться вверх или вниз. таким образом в ОЗУ будет только отображаемое кол-во строк и можно будет смотреть файл.

как нибудь вот так)

with open("file.txt", "r") as f:
    old_pos = 0
    chunk_size = 2
    while True:
        chunk = f.read(chunk_size)
        print(chunk, sep="")
        cmd = input(":")
        if cmd == ">":
            old_pos = f.tell()
            continue
        elif cmd == "<":
            old_pos -= chunk_size
            f.seek(old_pos)
            continue
        else:
            break
→ Ссылка