Thomas Lotze wrote: > AIUI (and as a little experimenting seems to confirm), you can't > reposition an iterator over an mmap'ed file by seeking. True, you have > both iterating by characters and seeking/telling, but the two > functionalities don't play together.
A quick and dirty hack!? Maybe i'm missing what it is that you need ... class MmapWithSeekAndTell(object): def __init__(self, m, size): self._m = m self._pos = 0 self._size = size-1 def __iter__(self): return self def next(self): if self._pos < self._size-1: self._pos += 1 return self._m[self._pos] raise StopIteration def seek(self, offset, whence=0): if whence == 0 and 0 <= offset < self._size: self._pos = offset elif whence == 1 and 0 <= (self._pos + offset) < self._size: self._pos += offset elif whence == 2 and 0<= (self._size - offset) < self._size: self._pos = self._size - offset def tell(self): return self._pos HtH, Roland -- http://mail.python.org/mailman/listinfo/python-list