Retour au cours

fichiers texte : open, encodage, lecture/écriture

travailler avec des fichiers texte exige de choisir le bon encodage (utf‑8).

objectifs

  • utiliser open() avec encoding="utf-8"
  • lire intégralement vs lire ligne par ligne
  • écrire de façon sûre avec with
  • comprendre newline et la gestion des fins de ligne

explication détaillée

structure :

with open(path, mode, encoding="utf-8", newline="") as f:
    ...
  • lecture intégrale : f.read()
  • lignes : itérer sur for line in f:
  • écriture : f.write(), attention à ajouter \n si nécessaire
  • newline="" recommandé pour csv et cohérence multi‑OS

exemples exécutables

# écriture puis lecture
with open("note.txt", "w", encoding="utf-8") as f:
    f.write("café\npython\n")
with open("note.txt", "r", encoding="utf-8") as f:
    print(f.read())
# ligne par ligne
with open("note.txt", encoding="utf-8") as f:
    for i, line in enumerate(f, start=1):
        print(i, line.rstrip("\n"))
# ajouter en fin de fichier
with open("note.txt", "a", encoding="utf-8") as f:
    f.write("ajout\n")

bonnes pratiques

  • toujours préciser encoding="utf-8"
  • utiliser with pour fermer automatiquement le fichier
  • utiliser newline="" pour du CSV (voir chapitre suivant)

pièges courants

  • caractères “�” → mauvais encodage à la lecture/écriture
  • oublier \n lors de l’écriture de lignes
  • charger des fichiers énormes d’un coup → préférez un parcours ligne par ligne

exercices

  1. copier un fichier ligne par ligne vers copy.txt.
  2. compter les lignes non vides d’un fichier texte.
  3. remplacer toutes les occurrences d’un mot par un autre et sauvegarder.