Taille originale d'un fichier compressé gzip

sebsauvage Messages postés 33415 Statut Modérateur -  
sebsauvage Messages postés 33415 Statut Modérateur -
Hello everyone.

Voilà mon problème:
J'utilise le module gzip de Python.
Je cherche à connaître la taille originale d'un fichier compressé en gzip.

Est-ce que je suis obligé d'ouvrir le fichier .gz avec le module gzip, et de faire un seek/tell ?
Ou bien bricoler moi même une routine qui parse les entêtes du fichier gz ?

Merci d'avant si vous avez une idée...
A voir également:

2 réponses

Bobinours Messages postés 2903 Statut Membre 504
 
C'est toi le spécialiste python ici :-)

C'est vrai que c'est dommage de l'ouvrir juste pour ça...

Déjà un lien : http://www.ietf.org/rfc/rfc1952.txt

A mon avis tripatouiller dans les header serait intéressant.
Si Python ne fournit pas de fonction pour récupérer chaque header (à vrai dire ça m'étonne) regarde du côté de :

ISIZE (Input SIZE)
This contains the size of the original (uncompressed) input
data modulo 2^32.
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
ouaips... j'ai vu.
ça m'obligerais à parser et décompresser les entêtes. Pas glop.

Bon tant pis je repasse à zip... merci quand même !
0
Utilisateur anonyme > sebsauvage Messages postés 33415 Statut Modérateur
 
Salut,
Il y a une autre possibilité : winrar (disponible sur www.telecharger.com)
1. tu ouvre winrar
2. tu recherche ton ficgier gz dans l'arborescence du disque
3. tu vois la taille originale du fichier.
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667 > Utilisateur anonyme
 
mmm.. je veux automatiser ça par programme.
Je me vois mal piloter Winrar à partir de Python.
0
Bobinours Messages postés 2903 Statut Membre 504
 
seb : T'es certain qu'aucune fonction n'est disponible ??? C'est quand même le B. A. BA d'une librairie.
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Ben oui.
Tout ce que j'ai dans la librairie gz, c'est un object ZipFile qui me renvoie un descripteur de fichier.
Tout ce que je peux faire c'est les classiques seek/read/tell...

Rien pour connaître la taille. C'est dommage.

J'ai essayé en zip, ça marche. Par contre j'ai des bizarreries sur les dates de fichiers (arg).
0