You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

files.md 1.4 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. \center \huge Lire et écrire des fichiers
  2. # Rappel: lire
  3. ```python
  4. file = open("toto.txt", "r") # 'r' comme 'read'
  5. contenu = file.read()
  6. file.close()
  7. ```
  8. Note: le fichier `toto.txt` doit exister!
  9. # Écrire
  10. On peut écrire tout le contenu d'un coup:
  11. ```python
  12. contenu = "du texte à sauvegarder"
  13. file = open("article.txt", "w") # 'w' comme 'write'
  14. file.write(contenu)
  15. file.close()
  16. ```
  17. * Le fichier `article.txt` sera écrasé s'il existe déjà.
  18. * N'oubliez surtout pas d'appeler `close()`
  19. # Que faire en cas d'erreur ?
  20. ```python
  21. file = open("article.txt", "w") # 'w' comme 'write'
  22. # ... beacoup de code ici
  23. # ... < une erreur
  24. file.close()
  25. ```
  26. S'il y a une erreur entre `open()` et `close()`, le fichier ne sera pas fermé!
  27. # Le mot-clé with
  28. ```python
  29. with open("toto.txt", "w") as file:
  30. file.write("du texte")
  31. ```
  32. Quand on sort du bloc `with` on a la garantie que `file.close()` sera appelé,
  33. *même* si on sort du bloc à cause d'une erreur.
  34. # Convention
  35. Il n'y a maintenant plus aucune raison d'appeler `.close()` "à la main",
  36. donc ne le faites pas ...
  37. # Lire et écrire des lignes
  38. Très courant:
  39. ```python
  40. with open("toto.txt", "r") as file:
  41. lignes = file.readlines()
  42. # faire quelque chose avec la liste de lignes
  43. with open("toto.txt", "w") as file:
  44. file.writelines(lignes)
  45. ```
  46. Pensez à fermer le premier fichier avant d'ouvrir le second.
  47. (ça marche même s'ils ont le même nom)