Les fichiers en Python

Télécharger le fichier Chaine des Puys.txt dans le dossier de votre choix (par exemple ‘Mes Documents’) pour pouvoir répondre aux questions qui vont suivre.

Le système de fichiers

Sur un ordinateur, une tablette, un smartphone, une console, les fichiers sont organisés par un système de fichiers.

Les principales fonctions Python relatives à la manipulation de fichiers se trouvent dans la bibliothèque os .

import os

Pour accéder à un fichier, il faut connaitre son chemin (voir Gestion des fichiers en Python).

Par exemple le chemin du fichier Chaine des Puys.txt (téléchargé plus tôt) est peut-être :

C:\Users\Moi\Documents\Chaine des Puys.txt

 

A l’instar d’une fenêtre de commande Windows (cmd.exe ) ou d’un Terminal Linux, la console Python possède un « répertoire courant ». Pour le modifier, on utilise la fonction chdir()  de la bibliothèque os .

os.chdir('C:/Users/Moi/Documents') # Mettre ici le chemin du dossier contenant Chaine des Puys.txt !
print(os.listdir())

Attention ! il faut  remplacer les \  (propres à Windows) par des / .

Si tout va bien, Chaine des Puys.txt  devrait apparaitre dans la liste.

Ouverture d’un fichier

Pour ouvrir un fichier, on peut utiliser la fonction open(), qui renvoie un objet de type objet-fichier.

f = open('Chaine des Puys.txt')
print(f)
<_io.TextIOWrapper name='Chaine des Puys.txt' mode='r' encoding='cp1252'>

Attention ! sous Linux, les noms de fichier doivent respecter la casse !

'Chaine des Puys.txt'  !=  'chaine des puys.txt'

Lecture d’un fichier texte

Pour lire le contenu entier d’un fichier, on peut utiliser la fonction read()  :

S = f.read()
print(S)
'Puy de La Vache\t1167\nGrand Suchet\t1231\nPuy de Dôme\t1465\nGrand Sarcouy\t1147\nPuy Chopine\t1181\nPuy de Louchadière\t1199\nPuy Pariou\t1209\nPuy de Côme\t1252\nPuy de la Nugère\t994\nPuy de la Bannière\t733\nPuy des Goules\t1146\nPuy de Mercœur \t1249\nPuy de Jume\t1163\nPuy de Lassolas\t1187'

Un fichier ouvert doit être refermé après utilisation (sous peine de ne pouvoir être rouvert !) :

f.close()

Activité :

  • Écrire une fonction dicoPuy()  qui renvoie un dictionnaire {nom : altitude}  à partir du fichier Chaine des Puys.txt.

Lorsqu’un fichier est très volumineux, il n’est pas forcément souhaitable d’en stocker tout le contenu en mémoire. Il est à cet effet possible de le parcourir ligne après ligne, car le type objet-fichier est un itérateur :

f = open('Chaine des Puys.txt')
for p in f:
   print(p)
f.close()

Activité :

  • Écrire une fonction leJustePuy(altitude)  permettant de donner le nom du puy le plus proche de l’altitude passée en argument, sans la dépasser.

Écrire dans un fichier texte.

Par défaut, un fichier est ouvert en mode ‘lecture seule’. Pour pouvoir écrire des données dedans, il faut l’ouvrir en mode écriture (write en anglais) et utiliser la méthode write()  :

f = open('Chaine des Puys.txt', 'w')
f.write("Puy de Chalard\t840") # '\t' = caractère Tabulation
f.close()

 

 


[do_widget id=mla-text-widget-2]

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *