calculer crc de fichier en python
Je veux calculer le CRC de fichier et obtenir une sortie comme: E45A12AC
. Voici mon code:
#!/usr/bin/env python
import os, sys
import zlib
def crc(fileName):
fd = open(fileName,"rb")
content = fd.readlines()
fd.close()
for eachLine in content:
zlib.crc32(eachLine)
for eachFile in sys.argv[1:]:
crc(eachFile)
Ce calcule le CRC pour chaque ligne, mais sa production (par exemple,-1767935985
) n'est pas ce que je veux.
Hashlib fonctionne de la manière que je veux, mais il calcule le md5:
import hashlib
m = hashlib.md5()
for line in open('data.txt', 'rb'):
m.update(line)
print m.hexdigest()
Est-il possible d'obtenir quelque chose de similaire à l'aide de zlib.crc32
?
source d'informationauteur user203547
Vous devez vous connecter pour publier un commentaire.
Un peu plus compact et optimisé le code
PS2: le Vieux PS est obsolète - donc supprimé -, à cause de la suggestion dans les commentaires. Je vous remercie. Je ne comprends pas comment j'ai raté ça, mais c'était vraiment bon.
hashlibinterface compatible pour le CRC-32 support:
Pour montrer tout entier le plus bas de 32 bits 8 chiffres hexadécimaux, sans signe, vous pouvez "masque", la valeur en bits et communique avec un masque de 32 bits tout à la valeur 1, puis appliquer une mise en forme. I. e.:
Il est tout à fait hors de propos, si l'entier vous êtes donc formatage vient de
zlib.crc32
ou de tout autre calcul que ce soit.De fusion ci-dessus 2 codes ci-dessous:
Vous pouvez utiliser base64 pour s'en sortir comme [ERD45FTR]. Et zlib.crc32 fournit des options de mise à jour.
solution:
n'a pas vraiment de savoir ce qui est (excludeLine="", includeLine="")...