diff --git a/fragments/files.md b/fragments/files.md new file mode 100644 index 0000000..491ebf8 --- /dev/null +++ b/fragments/files.md @@ -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) diff --git a/sessions/python-04.md b/sessions/python-04.md index c04f046..016c061 100644 --- a/sessions/python-04.md +++ b/sessions/python-04.md @@ -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)