Archives : TAR, ZIP¶
Lire et écrire des fichiers d’archives en Python peut se faire avec les modules intégrés zipfile (pour les fichiers .zip) et tarfile (pour les fichiers .tar, .tar.gz, etc.). Ces formats permettent de regrouper plusieurs fichiers dans une seule archive, avec ou sans compression.
Exemple de lecture d’un fichier ZIP¶
import zipfile
with zipfile.ZipFile('exemple.zip', 'r') as archive:
archive.printdir() # Affiche le contenu
archive.extractall('dossier_extrait') # ExtractionExemple de création d’un fichier ZIP¶
import zipfile
with zipfile.ZipFile('exemple.zip', 'w') as archive:
archive.write('fichier1.txt')
archive.write('fichier2.txt')Exemple de création d’un fichier TAR¶
import tarfile
with tarfile.open('exemple.tar.gz', 'w:gz') as archive:
archive.add('fichier1.txt')
archive.add('fichier2.txt')Ces exemples montrent comment manipuler des archives pour compresser ou regrouper des fichiers facilement.
Exercice¶
Solution to Exercise 1 #
import zipfile
import tarfile
import os
# 1. Lecture de l'archive ZIP
with zipfile.ZipFile('documents.zip', 'r') as archive:
print("Fichiers dans l'archive ZIP :")
archive.printdir()
# 2. Extraction et affichage du contenu
archive.extractall('temp_docs')
for nom_fichier in archive.namelist():
with open(os.path.join('temp_docs', nom_fichier), 'r', encoding='utf-8') as f:
print(f"{nom_fichier} : {f.read()}")
# 3. Ajout d’un nouveau fichier
with open('temp_docs/doc3.txt', 'w', encoding='utf-8') as f:
f.write("Hello")
# 4. Création d’une nouvelle archive ZIP mise à jour
with zipfile.ZipFile('documents.zip', 'w') as archive:
for nom_fichier in os.listdir('temp_docs'):
archive.write(os.path.join('temp_docs', nom_fichier), arcname=nom_fichier)
# 5. Bonus : création d’une archive TAR.GZ
with tarfile.open('documents.tar.gz', 'w:gz') as archive:
for nom_fichier in os.listdir('temp_docs'):
archive.add(os.path.join('temp_docs', nom_fichier), arcname=nom_fichier)
print("\nNouvelle archive ZIP et archive TAR.GZ créées avec succès.")