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

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

Traitement 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

Le traitement de fichiers en Python permet de persister les données au-delà de l'exécution du programme.

  • Ouverture : f = open("nom.txt", "mode").
  • Modes principaux :
    • 'r' (read) : Lecture seule (erreur si inexistant).
    • 'w' (write) : Écriture (écrase le contenu existant).
    • 'a' (append) : Ajout à la fin du fichier.
  • Fermeture : f.close() est indispensable pour libérer les ressources.
  • Gestion sécurisée : Utilisation du bloc with open(...) as f: qui ferme automatiquement le fichier.

Méthodes à maîtriser

  1. Lire tout le contenu : f.read() renvoie tout sous forme de chaîne.
  2. Lire ligne par ligne : f.readline() ou la boucle for ligne in f:.
  3. Écrire dans un fichier : f.write("texte") (attention : ne rajoute pas de saut de ligne automatiquement).
  4. Lire toutes les lignes : f.readlines() renvoie une liste de chaînes.

Exemples corrigés

Lecture simple :

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

Écriture avec boucle :

with open("resultat.txt", "w") as f:
    for i in range(5):
        f.write(f"Ligne {i}\n")

Erreurs fréquentes

  • Oublier de fermer le fichier (f.close()).
  • Utiliser le mode 'w' alors qu'on voulait ajouter des données (ce qui efface tout).
  • Oublier le caractère de saut de ligne \n lors de l'écriture.
  • Essayer de lire un fichier qui n'existe pas sans gérer l'exception.

🌉 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

🎯 Traitement de fichiers

1/4

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

❓ Questions fréquentes

Est-ce que le chemin du fichier doit être absolu ?

Non, si le fichier est dans le même dossier que ton script Python, tu peux mettre juste le nom du fichier. Sinon, il faut mettre le chemin complet.

💡 À retenir : Le chemin relatif est plus pratique pour le transfert de projets.

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

Oui, avec le mode 'r+', mais c'est risqué car le pointeur se déplace. Il est conseillé de séparer les opérations.

💡 À retenir : Éviter le mode 'r+' si vous débutez.

Comment savoir si mon fichier est bien ouvert ?

En Python, si l'ouverture échoue (ex: fichier introuvable), une erreur FileNotFoundError est levée. Pour vérifier, on peut utiliser un bloc try...except.

💡 À retenir : L'utilisation de with open(...) est la méthode la plus sûre car elle gère l'ouverture et la fermeture automatiquement.

Chno hiya l'far9 bin 'w' w 'a' f l'ouverture dyal l'fichier ?

Le mode 'w' (write) crée un nouveau fichier ou écrase tout le contenu si le fichier existe déjà. Le mode 'a' (append) garde le contenu existant et ajoute les nouvelles données à la fin.

💡 À retenir : 'w' = écraser, 'a' = ajouter.

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) sous forme d'une seule chaîne de caractères.

💡 À retenir : Attention aux fichiers très volumineux, cela peut saturer la mémoire.

Kifach n9ra fichier ligne b ligne bla mankhwi l'mémoire ?

Il faut utiliser une boucle for directement sur l'objet fichier : for ligne in f:. Python lit le fichier petit à petit.

💡 À retenir : C'est la méthode la plus efficace pour les gros fichiers.

Pourquoi mon fichier est vide après l'exécution du programme ?

Soit tu as oublié de fermer le fichier (ou de sortir du bloc with), soit tu as ouvert le fichier en mode 'w' sans rien écrire dedans.

💡 À retenir : Les données ne sont réellement écrites sur le disque qu'après la fermeture du flux.

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

Oui, il faut ajouter 'b' au mode, par exemple 'rb' pour lire en binaire.

💡 À retenir : Le mode par défaut est le mode texte 'rt'.

Chno kayw9e3 ila nsit f.close() ?

Le fichier reste "verrouillé" par le système d'exploitation, et les données risquent de ne pas être enregistrées correctement.

💡 À retenir : Toujours utiliser with open(...) pour éviter cet oubli.

Comment compter le nombre de lignes dans un fichier ?

Tu peux parcourir le fichier avec une boucle et incrémenter un compteur, ou utiliser len(f.readlines()).

💡 À retenir : La boucle est préférable pour ne pas charger tout le fichier en mémoire.

Est-ce que f.write() ajoute un saut de ligne tout seul ?

Non, f.write() écrit exactement ce que tu lui donnes. Si tu veux un saut de ligne, tu dois ajouter \n manuellement.

💡 À retenir : Contrairement à print(), write() ne rajoute rien.

Comment gérer les erreurs si le fichier est protégé en écriture ?

Il faut utiliser un bloc try...except IOError pour capturer l'erreur et afficher un message explicite à l'utilisateur.

💡 À retenir : La gestion des exceptions est cruciale pour la robustesse du code.

✍️ Exercices type examen national

Exercice 1

Écrire un programme Python qui lit un fichier texte nommé notes.txt contenant des entiers (un par ligne) et calcule leur moyenne. Le résultat doit être écrit dans un nouveau fichier moyenne.txt.

Voir la correction détaillée : inscription gratuite

Exercice 2

Soit un fichier contacts.txt où chaque ligne contient "Nom:Téléphone". Écrire un algorithme qui extrait uniquement les noms et les enregistre dans noms.txt.

Voir la correction détaillée : inscription gratuite

Exercice 3

Écrire un programme qui copie le contenu d'un fichier source.txt vers destination.txt en inversant l'ordre des lignes.

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