travailler avec des fichiers texte exige de choisir le bon encodage (utf‑8).
objectifs
- utiliser
open()avecencoding="utf-8" - lire intégralement vs lire ligne par ligne
- écrire de façon sûre avec
with - comprendre
newlineet 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\nsi 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
withpour fermer automatiquement le fichier - utiliser
newline=""pour du CSV (voir chapitre suivant)
pièges courants
- caractères “�” → mauvais encodage à la lecture/écriture
- oublier
\nlors de l’écriture de lignes - charger des fichiers énormes d’un coup → préférez un parcours ligne par ligne
exercices
- copier un fichier ligne par ligne vers
copy.txt. - compter les lignes non vides d’un fichier texte.
- remplacer toutes les occurrences d’un mot par un autre et sauvegarder.