@@ -0,0 +1,70 @@ | |||
\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) |
@@ -440,75 +440,3 @@ Il utilisait d'autres outils, bien sûr, mais ce qu'on va faire n'est pas si loi | |||
# | |||
# | |||
\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) |