Ateliers Python : Utiliser des fichiers textes

publicité
Ateliers Python : Utiliser des fichiers textes
www.mon-club-elec.fr
Tous droits réservés – 2013 - 2016.
Document gratuit.
Ce support PDF d'atelier Python + Qt vous est offert.
Pour acheter d'autres supports d'ateliers Python rendez-vous ici :
http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PythonShell
Vous avez constaté une erreur ? une coquille ? N'hésitez pas à nous le signaler à cette adresse : [email protected]
Truc d'utilisation : visualiser ce document en mode diaporama dans le visionneur PDF. Navigation avec les flèches HAUT / BAS ou la souris.
En mode fenêtre, activer le panneau latéral vous facilitera la navigation dans le document. Bonne lecture !
Ateliers Python : ...– Par X. HINAULT – p. 1 / 8
Python : Utiliser des fichiers textes
Par X. HINAULT – 2013 - 2016 – www.mon-club-elec.fr – Tous droits réservés
Ce que l'on va faire ici
•
Dans ce tutoriel, apprenez à utiliser des fichiers texte en langage Python.
Pré-requis : un système Gnu/Linux opérationnel
•
Je suppose ici que vous disposez
◦ d'un système graphique opérationnel (Gnu/Linux, Windows, Mac OsX) :
◦ avec Python installé ainsi que l'interpréteur Python de votre choix
Lancer l'interpréteur Python
•
Commencer par la lancer l'interpréteur Python que vous souhaitez utiliser, soit en ligne de commande depuis une console, soit à partir du menu
graphique du système.
•
Par exemple, on lancera dreampie en faisant :
$ dreampie
•
On obtient :
Ateliers Python : ...– Par X. HINAULT – p. 2 / 8
•
A noter avec Dreampie la particularité qui consiste à saisir les instructions Python dans la fenêtre du bas.
Conseil d'ami : paramétrer la fenêtre de votre interpréteur en mode « toujours au dessus » (clic droit sur la barre de titre sous Gnu/Linux) pour pouvoir
facilement travailler avec ce tuto.
Petit rappel : les chemins en Python
Comme nous allons parlé des fichiers, il faut être capable de gérer simplement les chemins pour placer les fichiers à l’endroit voulu sur le système, la
localisation par défaut étant le répertoire « courant » ce qui veut dire le répertoire le code Python que l’on exécute la plupart du temps.
Ateliers Python : ...– Par X. HINAULT – p. 3 / 8
Ceci a été vu séparément et je rappelle simplement ici les quelques fonctions utiles :
On commence par importer le module os :
import os
Ensuite, on accède aux chemins système de cette façon :
os.getenv('HOME') # le répertoire user courant
os.getcwd() # le répertoire courant
Pour construire des chemins, on dispose de la fonction suivante :
chemin=os.path.join(os.getenv('HOME'),'Bureau') # forme générale : os.path.join(chemin1,chemin2)
Note : d’une manière générale, je vous conseille de prendre l’habitude de terminer vos chemins « racine » par / et de débuter les chemins des sous
-répertoires sans / initial, tout comme cela se fait en ligne de commande.
Doc complète du module os ici : https://docs.python.org/2/library/os.html
Pour comprendre : ouvrir un fichier
Ouvrir un fichier
L’ouverture d’un fichier s’apparente à l’ouverture d’un tiroir : avant toute ouverture, vous n’avez aucun tiroir en main… De la même façon, avant
l’ouverture d’un fichier, l’objet fichier n’existe pas pour votre code Python (le fichier existe bien sur le disque dur si il es déjà créé). C’est pour cela
que l’on dispose d’une fonction d’ouverture native (ou fonction built-in) dans le langage Python : la fonction open( chemin, mode)
Voir : https://docs.python.org/2/library/functions.html#open
Ateliers Python : ...– Par X. HINAULT – p. 4 / 8
La fonction open() reçoit 2 paramètres :
•
le chemin (str)
•
le mode d’ouverture du fichier (str) : parmi ‘a’, ‘r’ et ‘w’
Logiquement, la fonction open() renvoie un objet file représentant le fichier.
Les modes d’ouverture
Lorsque l’on va ouvrir un fichier texte, on va disposer de 3 mode d’ouvertures possibles ayant chacun un fonctionnement particuliers :
•
le mode ‘r’ (read) : ouverture du fichier en lecture seule.
•
Le mode ‘w’ (write) : ouverture du fichier en mode lecture/écriture avec création du fichier si il n’existe pas et effacement du contenu si le
fichier existe (ATTENTION DONC SI VOUS UTILISEZ LE MODE ‘w’ )
•
le mode ‘a’ (append) : ouverture du fichier en mode lecture/écriture avec création du fichier si il n’existe pas et écriture sans effacement du
contenu : le texte est ajouté « à la suite » (append) du texte déjà présent dans le fichier.
En pratique, utiliser le mode ‘a’ par défaut et le mode ‘w’ que si on est sûr de ce qu’on fait.
Les opérations sur le fichier
Une fois que l’on a ouvert le fichier, on se retrouve dans la situation d’un tiroir que l’on tient en main : la fonction open renvoie un objet file
représentant le fichier et sur lequel on va pouvoir réaliser les opérations suivantes accessibles par des fonctions :
•
. read() : renvoie le contenu du fichier
•
.write(<str>) : écrit le contenu dans le fichier
•
.close() : ferme le fichier, ce qui est à faire une fois les opération de lecture / écriture terminée. Tant que le fichier est ouvert, il n’est pas
accessible par une autre programme.
Pour information, bien qu’elles ne soient pas indispensables, savoir que l’objet file dispose d’autres fonctions bien utiles :
Ateliers Python : ...– Par X. HINAULT – p. 5 / 8
•
seek() : pour se positionner à l’endroit voulu
•
readlines() : renvoie la list des lignes d’un fichier
Voir : https://docs.python.org/2/library/stdtypes.html#bltin-file-objects
Créer un fichier texte et écrire des données dedans
On va commencer par quelque chose de très simple : créer un fichier et écrire dedans puis relire le contenu :
#!/usr/bin/python
# -*- coding: utf-8 -*import os
# fonction principale
def main():
# definition du chemin du fichier
filedir=os.getcwd()
filename="test.txt"
filepath=os.path.join(filedir,filename)
print (filepath)
# ecriture dans le fichier
myfile=open(filepath, 'a')
myfile.write('Coucou\n')
myfile.close()
# ouverture fichier et lecture
myfile=open(filepath,'r')
filecontent=myfile.read()
myfile.close()
Ateliers Python : ...– Par X. HINAULT – p. 6 / 8
print (filecontent)
#--- obligatoire pour rendre code exécutable --if __name__ == "__main__": # cette condition est vraie si le fichier est le programme exécuté
main()# appelle la fonction principale
Ecrire 100 lignes numérotées de données
Ecrire 1440 lignes de données horodatées
Tranformer une liste de points en Gcode de perçage
Fichier en lecture
Extraire liste de lignes d’un fichier
Parser un fichier SVG
Ateliers Python : ...– Par X. HINAULT – p. 7 / 8
Console
>>> maListe=list()
Code
>>> def multiplication(a,b):
...
return a*b
>>> x=2
>>> y=3.0
>>> multiplication (x,y)
6,0
>>> x=10
>>> y=5
>>> multiplication (x,y)
50
Remarquer une fois encore que la fonction multiplication peut ici recevoir des types différents et peut également renvoyer des types différents sans
problème. Cela simplifie fortement la programmation, en tout cas pour des paramètres de type numériques.
Remarque
UBlabla .
Conclusion
Les instructions du langage Python vue dans ce tuto
….
Ateliers Python : ...– Par X. HINAULT – p. 8 / 8
Téléchargement