Найти - Пользователи
Полная версия: ...
Начало » Python для новичков » ...
1
Michail_V
agalen
import mmap
with open("data.bin", "r+") as f:
    m = mmap.mmap(f.fileno(), 0)
    pos = m.rfind( "\n" )
Shaman
Используйте file.seek и, скорее всего, бинарный режим доступа.
Michail_V
doza_and
Michail_V
всё-равно выжирает оперативу
Так вы приведите свой код.
Michail_V
doza_and
Michail_V
насколько я понимаю
Научите каким образом вы это так понимаете. http://docs.python.org/2/library/mmap.html
Команда
f=open("some_file.dat","r")
ведь не читает файл.
pyuser
def reverse_readlines(path, BLOCK_SIZE=4096):
    with open(path, "rb") as f:
        bfr = b""
        f.seek(-1, 2)
        while True:
            pos = f.tell()
            newline_pos = bfr.rfind(b"\n")
            while -1 != newline_pos:
                line, bfr = bfr[newline_pos+1:], bfr[:newline_pos]
                yield line
                newline_pos = bfr.rfind(b"\n")
            else:
                if pos:
                    toread = min(BLOCK_SIZE, pos)
                    f.seek(-toread, 1)
                    bfr = f.read(toread) + bfr
                    f.seek(-toread, 1)
                    if pos == toread:
                        bfr = b"\n" + bfr
                else:
                    raise StopIteration()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB