"Barak, Ron" <ron.ba...@lsi.com> wrote in message
news:7f0503cd69378f49be0dc30661c6ccf602494...@enbmail01.lsi.com...
The source of gzip.py on my system seems to suggest that negative seeks
are supported:
def seek(self, offset):
if self.mode == WRITE:
if offset < self.offset:
raise IOError('Negative seek in write mode')
count = offset - self.offset
for i in range(count // 1024):
self.write(1024 * '\0')
self.write((count % 1024) * '\0')
elif self.mode == READ:
if offset < self.offset:
# for negative seek, rewind and do positive seek
self.rewind()
count = offset - self.offset
for i in range(count // 1024):
self.read(1024)
self.read(count % 1024)
Could any who're familiar with the inner working of gzip settle this issue
?
Is seek from EOF supported for gzip files ?
Source from 2.6.1. Seek from EOF not supported:
def seek(self, offset, whence=0):
if whence:
if whence == 1:
offset = self.offset + offset
else:
raise ValueError('Seek from end not supported')
if self.mode == WRITE:
if offset < self.offset:
raise IOError('Negative seek in write mode')
count = offset - self.offset
for i in range(count // 1024):
self.write(1024 * '\0')
self.write((count % 1024) * '\0')
elif self.mode == READ:
if offset < self.offset:
# for negative seek, rewind and do positive seek
self.rewind()
count = offset - self.offset
for i in range(count // 1024):
self.read(1024)
self.read(count % 1024)
-Mark
--
http://mail.python.org/mailman/listinfo/python-list