Najah.
Mon plan de révision⚡ Défi flash

Informatique · Classes prépa (CPGE) — 1ère année — ECS

Manipulation de fichiers

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 Fiche de cours

L'essentiel du cours

La manipulation de fichiers en Python repose sur la fonction intégrée open(nom_fichier, mode).

  • Modes principaux :
    • 'r' (read) : Lecture seule. Erreur si le fichier n'existe pas.
    • 'w' (write) : Écriture. Crée le fichier ou écrase son contenu.
    • 'a' (append) : Ajout à la fin du fichier sans écraser.
  • Gestion sécurisée : L'utilisation du bloc with open(...) as f: est recommandée car elle garantit la fermeture automatique du fichier, même en cas d'erreur.

Méthodes à maîtriser

  • f.read() : Lit tout le contenu du fichier.
  • f.readline() : Lit une seule ligne.
  • f.readlines() : Lit toutes les lignes et les stocke dans une liste.
  • f.write(chaine) : Écrit une chaîne de caractères dans le fichier.
  • f.close() : Ferme explicitement le fichier (si on n'utilise pas with).

Exemples corrigés

Exemple 1 : Lecture

with open("donnees.txt", "r") as f:
    contenu = f.read()
    print(contenu)

Exemple 2 : Écriture

with open("resultat.txt", "w") as f:
    f.write("Note : 18/20")

Erreurs fréquentes

  • Oublier de fermer le fichier (si on n'utilise pas with).
  • Confondre 'w' (qui écrase tout) et 'a' (qui ajoute à la suite).
  • Tenter de lire un fichier ouvert en mode 'w' ou 'a'.
  • Ne pas gérer l'exception FileNotFoundError si le fichier n'existe pas.

🌉 Jisr : les mots du chapitre FR ⇄ AR

Tu as appris les sciences en arabe ? Touche un mot pour voir sa traduction et une explication en darija.

La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Manipulation de fichiers

1/4

Quel mode d'ouverture est utilisé pour ajouter du texte à la fin d'un fichier existant ?

❓ Questions fréquentes

C'est quoi la différence entre 'w' et 'a' ?
  1. Le mode 'w' (write) ouvre le fichier pour écrire. S'il existe déjà, tout son contenu est effacé.
  2. Le mode 'a' (append) ouvre le fichier pour écrire, mais place le curseur à la fin du fichier, préservant ainsi les données existantes.

💡 À retenir : Utilisez 'w' pour créer un nouveau fichier et 'a' pour compléter un fichier existant.

Kifach n9ra fichier ligne b ligne bla mayt3mer l'ordinateur b data?
  1. Nst3mlo boucle for 3la l'objet fichier direct.
  2. for ligne in open("file.txt", "r"): print(ligne).
  3. Hada kaysm7 l'Python y9ra ghir ligne wa7da f la mémoire f kol iteration.

💡 À retenir : La lecture itérative est plus efficace pour les fichiers volumineux.

Est-ce que je peux lire un fichier binaire comme une image avec open() ?

Oui, mais il faut ajouter le mode 'b' (binary). Par exemple, 'rb' pour lire en binaire. Attention, les méthodes comme read() renverront des bytes et non des chaînes de caractères.

💡 À retenir : Le mode binaire est indispensable pour tout ce qui n'est pas du texte pur.

Chno hiya l'utilité dyal with f l'ouverture dyal fichier?
  1. with kaytsemma "context manager".
  2. Kayerte7 l'programmeur mn l'fermeture manuelle (f.close()).
  3. 7ta ila وقعت شي erreur f l'exécution, l'fichier kayt-ferma automatiquement.

💡 À retenir : with est la bonne pratique pour éviter les fuites de mémoire.

Kifach n7seb ch7al mn ligne kayna f fichier?
  1. N7ellou l'fichier en mode lecture.
  2. Nst3mlo readlines() bach n7etou les lignes f liste.
  3. Nst3mlo len() 3la dik la liste.

💡 À retenir : len(f.readlines()) est simple mais attention aux très gros fichiers.

Pourquoi mon fichier est vide après l'exécution de mon code ?

C'est souvent parce que vous avez ouvert le fichier en mode 'w' sans rien écrire dedans, ou que vous avez oublié de fermer le fichier (si vous n'utilisez pas with), ce qui empêche l'écriture effective sur le disque.

💡 À retenir : Le mode 'w' vide le fichier dès l'ouverture.

Est-ce que f.read() lit tout le fichier d'un coup ?

Oui, f.read() charge tout le contenu du fichier dans la mémoire vive (RAM). Si le fichier est extrêmement lourd (plusieurs Go), cela peut faire planter votre programme.

💡 À retenir : Pour les fichiers géants, préférez une lecture par blocs ou ligne par ligne.

Comment écrire des nombres dans un fichier ?

Python ne peut écrire que des chaînes de caractères (str). Vous devez convertir vos nombres avec str(nombre) avant de les passer à f.write().

💡 À retenir : f.write(str(15)) est correct, f.write(15) provoquera une erreur.

Est-ce que je peux lire et écrire dans le même fichier en même temps ?

Oui, avec le mode 'r+'. Cependant, c'est risqué car vous pouvez écraser des données par erreur si vous ne gérez pas bien la position du curseur avec f.seek().

💡 À retenir : Évitez le mode 'r+' sauf si c'est strictement nécessaire.

Chno kaytra ila 7awelt n9ra fichier li makaynach?

Python va déclencher une erreur de type FileNotFoundError. Il est conseillé d'utiliser un bloc try...except pour gérer ce cas proprement.

💡 À retenir : Toujours prévoir le cas où le fichier est absent.

Est-ce que f.readline() lit tout le fichier ?

Non, f.readline() lit uniquement jusqu'au prochain caractère de saut de ligne (\n). Pour lire tout le fichier, il faut appeler cette méthode dans une boucle.

💡 À retenir : readline() est idéal pour traiter un fichier ligne par ligne.

Comment supprimer une ligne dans un fichier ?

Python ne permet pas de supprimer directement une ligne. Il faut :

  1. Lire tout le contenu.
  2. Créer une nouvelle liste sans la ligne voulue.
  3. Réécrire tout le contenu dans le fichier.

💡 À retenir : La modification d'un fichier nécessite souvent une réécriture complète.

✍️ Exercices type examen national

Exercice 1

Écrire un programme Python qui demande à l'utilisateur de saisir 3 noms d'élèves, puis les enregistre dans un fichier nommé eleves.txt, chaque nom sur une ligne.

Voir la correction détaillée : inscription gratuite

Exercice 2

Soit un fichier notes.txt contenant des nombres entiers, un par ligne. Écrire un script qui calcule et affiche la moyenne de ces notes.

Voir la correction détaillée : inscription gratuite

Exercice 3

Écrire un programme qui copie le contenu d'un fichier source.txt vers un fichier destination.txt.

Voir la correction détaillée : inscription gratuite

Un prof de Informatique pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Informatique