Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/12/2007, à 13:39

AppleSeed

[Résolu] python et la zipfile lib (demande de l'info crc)

Bonjour,

Je cherche a récupérer le crc de chaque fichier se trouvant dans un fichier zip (un ajouter le support des fichiers zip à  un projet), hors je me heurte à  un petit problème : le crc que me retourne la zipfile lib est plutà´t amusante ...

Petit test : je crée un fichier zip, "test.zip", comportant plusieurs petits fichiers pris au pif (avec file roller 2.20.1). Chaque fichier à  dans son nom le crc qu'il avait avec que le compresse. Ensuite j'exécute ce bout de code:

#!/usr/bin/python

import zipfile

z = zipfile.ZipFile("test.zip","r")
for item in z.namelist():
	print "-----"
	print "nom du fichier : " + item
	print "crc que retourne la lib zipfile : " + str(z.getinfo(item).CRC)
	print "meme chose mais en hexa : " + hex(z.getinfo(item).CRC)
z.testzip()
z.close()

ce qui me retourne :

nom du fichier : test 6 - [B21E7713]
crc que retourne la lib zipfile : -1306626285
meme chose mais en hexa : -0x4de188ed
-----
nom du fichier : test 5 - [53FD6D88]
crc que retourne la lib zipfile : 1409117576
meme chose mais en hexa : 0x53fd6d88
-----
nom du fichier : test 4 - [E7D20947]
crc que retourne la lib zipfile : -405665465
meme chose mais en hexa : -0x182df6b9
-----
nom du fichier : test 3 - [44F01686]
crc que retourne la lib zipfile : 1156585094
meme chose mais en hexa : 0x44f01686
-----
nom du fichier : test 2 - [037C75B0]
crc que retourne la lib zipfile : 58488240
meme chose mais en hexa : 0x37c75b0
-----
nom du fichier : test 1 - [2B4FDD58]
crc que retourne la lib zipfile : 726654296
meme chose mais en hexa : 0x2b4fdd58

On s'aperçoit que pour les fichiers nommés "test 1", "test 2", "test 3", et "test 5" cela fonctionne, mais pas pour "test 4" et "test 6" qui retourne n'importe quoi... la fonction testzip ne me retourne pourtant pas d'erreur. Si je test avec d'autre programme, non python, supportant les fichiers zip, le crc retourné pour chaque fichier est correct.

Je suis en Gutsy 64bits. Si qq à  une idée...
Merci de và´tre aide.

Dernière modification par AppleSeed (Le 09/12/2007, à 00:29)

Hors ligne

#2 Le 08/12/2007, à 13:40

mrlem

Re : [Résolu] python et la zipfile lib (demande de l'info crc)

Salut,

  Je ne suis pas expert Python, mais on dirait que sur ta machine, la valeur de CRC est interprétée comme négative (genre à  cause de ta machine 64 bits et du fait que le CRC soit 32 bits ?).

  Si d'autres programmes te disent que cette valeur est bonne, alors c'est en effet juste un problème d'interprétation. Tu devrais pouvoir pallier au problème de manière rapide en remplaçant :

z.getinfo(item).CRC

par :

z.getinfo(item).CRC & 0xffffffffL

Mais quelqu'un de plus familier avec Python te donnera sûrement une manière plus propre de le faire.

Bonne chance smile

Hors ligne

#3 Le 09/12/2007, à 00:24

AppleSeed

Re : [Résolu] python et la zipfile lib (demande de l'info crc)

Merci beaucoup, je vais tester ça ^^



à‰dit : Cela marche super bien, merci encore smile

Dernière modification par AppleSeed (Le 09/12/2007, à 00:29)

Hors ligne