problème avec le module tarfile
Bonjour,
Je ne comprends pas d'où vient la différence entre 2 manières d'extraire un fichier d'une archive .tar
Voici un bout de code qui montre mon problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
import os, tarfile, hashlib
path = "/home/test/"
tar_file = "/home/test/tar.tar"
filename = "fichier.txt"
filename2 = "fichier2.txt"
filename3 = "fichier3.txt"
def md5sum(filename):
try:
f = open(filename, "rb")
except Exception as e:
print(e)
return ""
md5 = hashlib.md5()
data = f.read(128)
while data:
md5.update(data)
data = f.read(128)
f.close()
return md5.hexdigest()
with tarfile.open(tar_file, "w") as tar:
tar.add(path+filename, arcname=filename3)
print(md5sum(path+filename))
with tarfile.open(tar_file, "r") as tar:
member = tar.getmember(filename3)
data = tar.extractfile(member).read()
with open(path+filename2, "w") as f:
f.write(data)
print(md5sum(path+filename2))
tar.extract(member, path=path)
print(md5sum(path+filename)) |
Seul le md5 de la méthode "tar.extract(member, path=path)" est correct
Qu'est ce qui cloque en passant par read() ?
D'avance merci