Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Formats de fichiers populaires

APERTO-NOTA

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')  # Extraction

Exemple 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.")