2014-09-23 1 views
2

J'ai un gros fichier gzip et je voudrais en lire seulement des parties en utilisant seek. A propos de l'utilisation de seek sur gzip fichiers, ce page dit:A propos de l'utilisation de chercher sur les fichiers gzip

La recherche() position par rapport aux données non compressées, de sorte que l'appelant n'a même pas besoin de savoir que le fichier de données sont compressées.

Est-ce à dire que seek doit lire et décompresser les données depuis le début du fichier à la position cible?

Répondre

5

Oui. This is the code:

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) 

Alternatives are discussed here. Le problème est inhérent au format gzip.