Python (école d'ingénieur) · Chapitre 7 · Exercice
Copie de fichier
Fichiers, exceptions et modules
Énoncé
Écrire une fonction copier_fichier(source, destination) qui copie le contenu d'un fichier source vers un fichier destination.
def copier_fichier(source, destination):
"""
Copie le contenu du fichier source vers le fichier destination.
Retourne le nombre d'octets/caractères copiés.
"""
try:
with open(source, "r", encoding="utf-8") as src:
contenu = src.read()
with open(destination, "w", encoding="utf-8") as dst:
dst.write(contenu)
return len(contenu)
except FileNotFoundError:
print(f"Erreur : Le fichier source '{source}' n'existe pas.")
return -1
# Test
copier_fichier("test.txt", "copie.txt")
print(compter_lignes("copie.txt")) # Affiche 3Corrigé
Pour éviter de saturer la mémoire vive lors de la copie de fichiers volumineux (comme des images, des vidéos ou des bases de données volumineuses), il est recommandé de lire et écrire par blocs d'octets (bytes) de taille fixe (par exemple, 4096 octets) :
def copier_fichier_blocs(source, destination, taille_bloc=4096):
"""Copie un fichier par blocs (efficace pour les gros fichiers)."""
with open(source, "rb") as src:
with open(destination, "wb") as dst:
while True:
bloc = src.read(taille_bloc)
if not bloc:
break
dst.write(bloc)100 % gratuit
La suite du chapitre est sur Adloun
- 5 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.