Lecture et écriture de fichiers

Lire et écrire des fichiers texte en Python : ouvrir en lecture, écriture ou ajout, lire en entier ou ligne par ligne, écrire, fermer, chemin relatif ou absolu, fins de ligne et erreurs d'ouverture.

  • 27 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Fichier texte : de quoi s'agit-il ?

    Voir la réponse

    Suite de caractères rangée sur le disque, qu'un programme lit et écrit ligne après ligne, et qu'un éditeur de texte sait afficher.

    Un fichier de notes avec un nombre par ligne est un fichier texte : 12 est lu comme la chaîne '12\n', et il faut le convertir pour calculer.

  • Que contient notes.txt à la fin de ce programme ?

    ```python
    with open("notes.txt", "w") as f:
    f.write("12\n")
    with open("notes.txt", "w") as f:
    f.write("15\n")
    with open("notes.txt", "a") as f:
    f.write("9\n")
    `

    • Deux lignes : 15, puis 9
    • Trois lignes : 12, 15, puis 9
    • Une seule ligne : 15
    • Deux lignes : 12, puis 9
    Voir la réponse

    Deux lignes : 15, puis 9

    Chaque ouverture en 'w' vide le fichier : le 12 disparaît à la deuxième ouverture. L'ouverture en 'a' garde le 15 et ajoute le 9 à la suite.

  • Ouvrir en mode w un fichier qui existe … son contenu ; en mode a, on ….

    Voir la réponse

    Ouvrir en mode w un fichier qui existe efface son contenu ; en mode a, on ajoute à la fin.

    L'effacement a lieu dès l'ouverture, avant la moindre écriture. Pour garder l'ancien contenu, on ouvre en mode 'a'.

  • Mode d'ouverture : de quoi s'agit-il ?

    Voir la réponse

    Code court, le plus souvent une lettre, donné à l'ouverture d'un fichier, qui dit ce qu'on a le droit d'en faire : le lire, l'écrire en repartant de zéro, ou y ajouter à la fin.

    'r' lit, 'w' efface puis écrit, 'a' ajoute à la fin. Le mode par défaut est 'r' : open("notes.txt") ne peut ni créer le fichier ni y écrire.

  • Ton programme ouvre "data/notes.txt" et fonctionne depuis ton éditeur, mais échoue en FileNotFoundError quand tu le lances depuis un autre dossier. Pourquoi ?

    • Python ne retrouve les fichiers que dans le dossier où se trouve le fichier .py
    • Le chemin part du dossier de lancement, qui a changé
    • Le fichier est détruit à la fermeture de l'éditeur
    • Le sous-dossier data n'existe qu'en mode lecture
    Voir la réponse

    Le chemin part du dossier de lancement, qui a changé

    Le chemin relatif part du dossier de lancement, pas de l'emplacement du .py. On lance toujours depuis le même dossier, ou on construit un chemin absolu à partir de l'emplacement du programme.