|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- \center \huge Lire et écrire des fichiers
-
- # Rappel: lire
-
- ```python
- file = open("toto.txt", "r") # 'r' comme 'read'
- contenu = file.read()
- file.close()
- ```
-
- Note: le fichier `toto.txt` doit exister!
-
- # Écrire
-
- On peut écrire tout le contenu d'un coup:
-
- ```python
- contenu = "du texte à sauvegarder"
- file = open("article.txt", "w") # 'w' comme 'write'
- file.write(contenu)
- file.close()
- ```
-
-
- * Le fichier `article.txt` sera écrasé s'il existe déjà.
- * N'oubliez surtout pas d'appeler `close()`
-
- # Que faire en cas d'erreur ?
-
- ```python
- file = open("article.txt", "w") # 'w' comme 'write'
- # ... beacoup de code ici
- # ... < une erreur
- file.close()
- ```
-
- S'il y a une erreur entre `open()` et `close()`, le fichier ne sera pas fermé!
-
-
- # Le mot-clé with
-
- ```python
- with open("toto.txt", "w") as file:
- file.write("du texte")
- ```
-
- Quand on sort du bloc `with` on a la garantie que `file.close()` sera appelé,
- *même* si on sort du bloc à cause d'une erreur.
-
- # Convention
-
- Il n'y a maintenant plus aucune raison d'appeler `.close()` "à la main",
- donc ne le faites pas ...
-
- # Lire et écrire des lignes
-
- Très courant:
-
- ```python
- with open("toto.txt", "r") as file:
- lignes = file.readlines()
-
- # faire quelque chose avec la liste de lignes
-
- with open("toto.txt", "w") as file:
- file.writelines(lignes)
- ```
-
- Pensez à fermer le premier fichier avant d'ouvrir le second.
- (ça marche même s'ils ont le même nom)
|