关于在gzip文件上使用seek

usu*_* me 4 python gzip seek python-2.7

我有一个大gzip文件,我想只阅读部分内容seek.关于seekon gzip文件的使用,这个页面说:

seek()位置与未压缩数据相关,因此调用者甚至不需要知道数据文件是否已压缩.

这是否意味着seek必须从文件开头读取和解压缩数据到目标位置?

Vee*_*rac 5

是.这是代码:

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)
Run Code Online (Sandbox Code Playgroud)

这里讨论替代方案.问题是gzip格式固有的.