Lecture et Ecriture de Fichiers
Les fichiers permettent de sauvegarder des donnees de facon permanente ! Scores de jeu, configurations, listes de contacts... Apprends a lire et ecrire des fichiers comme un pro !
Objectifs du cours
- Comprendre comment Python interagit avec les fichiers
- Ouvrir un fichier en lecture avec open() et read()
- Lire un fichier ligne par ligne avec readlines()
- Ecrire dans un fichier avec write() et writelines()
- Utiliser le gestionnaire de contexte with pour securiser les operations
Erreurs courantes a eviter
- Oublier de fermer le fichier apres utilisation (sans 'with')
- Confondre les modes 'r', 'w' et 'a' (lecture, ecriture, ajout)
- Utiliser 'w' au lieu de 'a' et ecraser tout le contenu
- Oublier l'encodage UTF-8 pour les caracteres speciaux
**La fonction open()**
Pour ouvrir un fichier, on utilise open() avec le chemin du fichier : ```python fichier = open("mon_fichier.txt", "r") ```
**Les modes d'ouverture :**
| Mode | Description | |------|-------------| | "r" | Lecture (read) - defaut | | "w" | Ecriture (write) - ecrase le contenu | | "a" | Ajout (append) - ajoute a la fin | | "r+" | Lecture et ecriture |
**Lire tout le contenu :**
```python contenu = fichier.read() ```
**IMPORTANT : toujours fermer le fichier !**
```python fichier.close() ```
**Meilleure methode : le with**
Le `with` ferme automatiquement le fichier : ```python with open("fichier.txt", "r") as f: contenu = f.read() # Fichier ferme automatiquement ici ```
# Lecture d'un fichier texte
# On cree d'abord un fichier pour l'exemple
with open("exemple.txt", "w") as f:
f.write("Bonjour Python !\n")
f.write("Ceci est un fichier texte.\n")
f.write("Troisieme ligne.\n")
# Lecture complete avec read()
print("=== LECTURE COMPLETE ===")
with open("exemple.txt", "r") as fichier:
contenu = fichier.read()
print(contenu)
# Lecture avec nombre de caracteres
print("=== LECTURE PARTIELLE ===")
with open("exemple.txt", "r") as f:
debut = f.read(10) # Lit les 10 premiers caracteres
print(f"Premiers caracteres : '{debut}'")
# Lecture ligne par ligne (methode 1)
print("=== LIGNE PAR LIGNE ===")
with open("exemple.txt", "r") as f:
for ligne in f:
print(f"-> {ligne.strip()}")Quiz de validation
1. Quel mode ouvre un fichier en lecture sans l'effacer ?
2. Pourquoi utiliser 'with open()' plutot que 'open()' seul ?
3. Que fait le mode "a" (append) ?
4. Quelle methode renvoie une liste de toutes les lignes ?
5. Quel encodage utiliser pour les accents francais ?
