Info 3. Lire/écrire des fichiers avec python 1 Ce tutoriel présente les instruc

Info 3. Lire/écrire des fichiers avec python 1 Ce tutoriel présente les instructions de base dont nous aurons besoin pour lire des fichiers de données. Ouvrir un fichier : On considère que le fichier est dans le même répertoire que le script. Soit le fichier texte, appelé « data.txt » dont le contenu est : 0 1 1 3 4.5 6 7.8 2.5 Chaque valeur d’une même ligne est séparée par une tabulation. Pour ouvrir un fichier on utilise l’instruction open() fichier=open("data.txt","r") #on ouvre le fichier data.txt, en mode lecture (d’où le « r » comme read) Lecture du contenu entier d’un fichier : On utilise l’instruction read() fichier=open("data.txt","r") contenu=fichier.read() print(contenu) Le programme suivant affiche : '0\t1\n1\t3\n4.5\t6\n7.8\t2.5' Inexploitable en tant que tel, il faut manipuler le résultat. Première remarque : c’est un type composite de type ‘string’. Deuxième remarque : ‘\t ‘ correspond à une tabulation et ‘\n’ est le caractère réservé pour « retour à la ligne ». contenu est donc cohérent avec ce que l’on a dans le fichier. On veut à partir du fichier texte, créer les deux listes suivantes : t=[0,1,4.5,7.8] et x=[1,3,6,2.5] pour tracer x en fonction de t par exemple. il faut tout d’abord « couper » contenu pour enlever les ‘\t’ et les ‘\n’ Pour cela on utilise l’instruction split() : t1=contenu.split('\t') Cette ligne donne : ['0', '1\n1', '3\n4.5', '6\n7.8', '2.5'] 1 Ce tutoriel n’est absolument pas complet, et présente une manière de lire les fichiers. La version de python utilisée est 3.3.5 . ~ 1 ~ Info On voit qu’à chaque fois qu’il y un ‘\t’, on coupe contenu, et on place les éléments dans une liste. Reste à continuer en « coupant » les ‘\n’. t2=[] for i in range(len(t1)): t2.append(t1[i].split('\n')) Ce programme donne : [['0'], ['1'], ['1'], ['3'], ['4.5'], ['6'], ['7.8'], ['2.5']] Et on rajoute : t2=[t2[i][0] for i in range(len(t))] pour obtenir ['0', '1', '1', '3', '4.5', '6', '7.8', '2.5'] Reste à créer les listes pour les tracés : t=[] x=[] for i in range(int(len(t2)/2)): t.append(float(t2[2*i])) x.append(float(t2[2*i+1]) Ce qui donne : >>> t [0.0, 1.0, 4.5, 7.8] >>> x [1.0, 3.0, 6.0, 2.5] L’exploitation est donc maintenant possible. Il est possible d’utiliser d’autres instructions comme readlines () : fichier=open("data.txt","r") contenu=fichier.readlines() print(contenu) Ce programme affiche : ['0\t1\n', '1\t3\n', '4.5\t6\n', '7.8\t2.5'] Le programme suivant abouti au même résultat que le précédent : fichier=open("data.txt","r") contenu=fichier.readlines() t=[] x=[] for i in range(len(contenu)): ~ 2 ~ Info a=contenu[i].split('\n') b=a[0].split('\t') t.append(float(b[0])) x.append(float(b[1])) Une fois la lecture terminée, on ferme le fichier, pour éliminer les problèmes d’accès à ce même fichier par d’autres applications par exemple : fichier.close() ~ 3 ~ uploads/Litterature/ tuto-lecture-fichier-light.pdf

  • 22
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager