Chapitre 14

Chapitre 14

14.1 Lecture à partir de fichiers

1.
c. Le fichier est ouvert et associé à l'objet fileobj. La lecture à partir du fichier sera possible à l'aide de fileobj.
2.
a. Le fichier doit exister dans le même dossier que le fichier Python afin de pouvoir être ouvert.
3.
b. Python interprète cette commande comme une tentative du programmeur d'afficher les détails de l'objet. Les détails de l'objet sont affichés. Ex. : <_io.TextIOWrapper name='newfile.txt' mode='r' encoding='cp1252'>.
4.
c. La fonction read() est appelée sur fileobj. Le contenu du fichier sera lu dans file_str.
5.
b. La fonction readlines() est appelée sur fileobj. file_lines est la liste de chaînes de caractères ['Hello world!\n', 'How are you?\n'].
6.
a. La fonction readline() lit la ligne suivante d'un fichier. Comme readline() est appelée immédiatement après l'ouverture du fichier, la première ligne est lue. La chaîne résultante "Hello world!" est affichée. Notez que readline() inclut le caractère '\n' , donc l'affichage comportera un saut de ligne supplémentaire.

14.2 Écriture dans des fichiers

1.
a. Le mode par défaut de la fonction open() est la lecture.
2.
c. 'a' indique le mode ajout (append), ce qui permet d'ajouter du contenu au fichier.
3.
b. 'w' indique le mode écriture, et newlog.txt sera créé ou écrasé (si newlog.txt existe déjà) et permettra l'écriture.
4.
c. resources.txt est probablement vide, mais l'état de resources.txt est incertain. Pour s'assurer que le contenu est correctement enregistré, la fonction close() doit être utilisée.
5.
a. Le mode écriture écrasera le fichier existant. L'instruction close() finalise les modifications apportées au fichier.
6.
b. Le mode ajout ajoute du contenu au fichier existant. resources.txt est ouvert de manière à ce que des ajouts puissent y être effectués.

14.3 Fichiers situés à différents emplacements et manipulation de fichiers CSV

1.
b. Le chemin suivi du nom de fichier permet d'ouvrir correctement le fichier, et par défaut en mode lecture.
2.
c. L'utilisation de barres obliques / à la place des barres obliques inverses standard de Windows \ permet au chemin d'être lu correctement. Le chemin suivi du nom de fichier permet d'ouvrir le fichier et, lors de la lecture d'un fichier, le mode lecture est préférable.
3.
c. Le fichier est créé ou écrasé et des modifications peuvent y être écrites.
4.
a. Comme les barres obliques inverses dans le chemin Windows apparaissent dans l'argument sous forme de chaîne, ce qui indique habituellement à Python qu'il s'agit d'une séquence d'échappement, les barres obliques inverses doivent être ignorées à l'aide d'un caractère barre oblique inverse supplémentaire \.
5.
a. Le caractère de retour à la ligne \n indique l'emplacement des sauts de ligne dans un fichier et est utilisé par la fonction readlines() pour distinguer les lignes.
6.
b. La cellule située à la 2e ligne et 3e colonne contient '268' .
7.
c. La première ligne de books.csv est lue dans csv_read. La première ligne est 'Title, Author, Pages' , ce qui correspond à la première ligne du fichier.

14.4 Gestion des exceptions

1.
c. La chaîne "3-4" n'est pas un entier, donc la fonction int() lève une ValueError comme précédemment.
2.
a. Le nom de fichier doit se terminer par .txt, et non .text.
3.
b. Si la ligne ne contient aucun espace, alors len(parts) ne sera que de 1, et parts[1] sera hors limites.
4.
b. La fonction int() lève une ValueError lors de la tentative de conversion de "one" en un entier, le programme passe donc à la clause except.
5.
c. Le programme plante et affiche cette erreur parce que la clause except ne gère pas ValueError.
6.
b. Si une clause except ne spécifie aucun type d'erreur particulier, alors tous les types d'erreur sont traités.

14.5 Levée d'exceptions

1.
a. "M" est une taille valide, donc l'objet Pizza est construit.
2.
c. PizzaError n'est pas un type d'exception intégré.
3.
a. Une exception peut être levée sans fournir de message d'erreur. Dans ce cas, le message d'erreur est vide, mais le nom de l'exception est tout de même affiché.