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 :
Seul le md5 de la méthode "tar.extract(member, path=path)" est correct
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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))
Qu'est ce qui cloque en passant par read() ?
D'avance merci
Partager