2. Un fichier texte fichierTeste.txt tot@gmail.com Ceci est une ligne dans mon_fichier Encore Une autre ligne 1- Premier élément de liste 2- 2 eme élément de liste 3- des nombres: 1 2 3 4 5 6 7 8 9 1 Marqueur de fin de ligne 2
3. Différents types de fichiers Fichiers texte: lisibles par les humains, à l’aide d’un éditeur de texte (word, wordPad, Bloc notes,etc,) Fichiers binaires: doivent être décodés par un logiciel spécifique Exemple: images, son, vidéos, etc. 3
4. En Python: un type de données est associé aux fichiers Opérations sur un fichier avec Python Ouverture Fermeture Lecture Écriture 4
5. Emplacements de fichiers (1/2) Récupérer le dossier courant où pointe le programme (getcurrentworking directory) import os rep_cour= os.getcwd() Pointer sur un autre dossier (change directory) os.chdir("c:/test1") 5
6. Emplacements de fichiers (2/2) Exemple: créer le dossier ‘Fichiers Tp Python’ sur ‘c:/’ Tester le script suivant import os printos.getcwd() os.chdir("C:/Fichiers Tp Python") printos.getcwd() 6
7. Ouverture d’un fichier Associer un fichier dont on spécifie le nom à une variable Trois modes d’ouverture En lecture: Lire le fichier dès son début, ligne par ligne f1 = open(monFichier_1, "r") # en lecture (read) En écriture: Écraser l’ancien contenu et écrire par dessus f2 = open(monFichier_2, "w") # en écriture (write) En ajout: Écrire à la suite de l’ancien contenu f3 = open(monFichier_3, "a") # en ajout (append) 7
8. Fermeture d’un fichier Syntaxe: f1.close() Permet de rendre le fichier disponible pour d’autres traitements Exemple: après avoir lu un fichier, nous désirons écrire dedans et le relire à nouveau 8
9. Lecture d’un fichier Etape 1: Ouverture du fichier en mode lecture f = open("monFichier_1", "r") Etape 2: Appeler la fonction read(+srssynatxes) s = f.read() # lit tout le fichier :: string s = f.read(n) # lit au plus n caractères:: string s = f.readline() # lit la ligne suivante :: string s = f.readlines() # lit tout le fichier :: liste de strings for ligne in f: printligne # bon procédéde parcours d’un fichier Etape 3: Fermer le fichier f.close() 9
10. Exemple: Ouverture d’un fichier Créer dans le dossier précédent un fichier avec un éditeur de texte tst.txt dont le contenu est le suivant Ecrire un script en Python pour l’ouvrir en lecture et afficher son contenu selon les différentes méthodes Début de mon fichier Ligne 1 Ligne 2 Ligne 3 Fin de mon fichier 10
11. Écriture dans un fichier (1/2) Etape 1: Ouverture du fichier en mode écriture (write) f3 = open("nomPrenom", "w") Etape 2: Appeler la fonction write tmpNomPrenom= "Bouchard, Josee" f3.write(tmpNomPrenom) # ecriture d’une ligne lst= [’a’, ’b’, ’c’] f3.writelines(lst) # ecriture d’un ensemble de lignes print>> f3, "abcd"# ecritdans f3 en mode ajout Etape 3: Fermer le fichier f.close() 11
12. Exemple: Ecriture dans un fichier A l’aide d’un script Python, ouvrir le fichier tst.txt en mode écriture, saisir le contenu suivant Ouvrez le fichier et consultez son contenu. Que constatez vous? Je viens de saisir du nouveau contenu Est-ce que l’ancien contenu va rester? Est-ce qu’il sera écrasé? 12
13. Écriture dans un fichier (2/2) Etape 1: Ouverture du fichier en mode ajout (append) f3 = open("nomPrenom", "a") Etape 2: Appeler la fonction write Etape 3: Fermer le fichier f.close() 13
14.
15. Noms de fichiers et de dossiers Que se passe-t-il si le nom de fichier ou dossier entré en paramètre n’existe pas lorsqu’il est appelé dans: fichier1 = open(nomFichier1,"r") ? fichier2 = open(nomFichier2,"w") ? fichier3 = open(nomFichier3,"a") ? os.chdir(chemin) 15
16. Traiter l’exception d’ouverture de fichier Si nous désirons ouvrir un fichier dont le nom n’existe pas ou qui existe dans un répertoire autre que le répertoire courant: le programme génère une exception ! IOError: [Errno 2] No such file or directory: Pour dépasser le bloc qui génère l’exception Try: f1=open(nomFichier1,"r") Except: # bloc à exécuter en cas de génération d’exception print "Le fichier " , nomFichier1,"n’existe pas" 16
17. Le module «Pickle» Il permet la conservation des types : import pickle a, b = 5, 2.83 f = open("monFichier.txt", "w") # en ´ecriture pickle.dump(a, f) pickle.dump(b, f) f.close() f = open("monFichier.txt", "r") # en lecture t = pickle.load(f) print t, type(t) # 5 <type ’int’> t = pickle.load(f) print t, type(t) # 2.83 <type ’float’> f.close() 17
18. Exercice 1 Ecrivez un script qui permette d’encoder un fichier texte dont les lignes contiendront chacune les informations relatives à une personne donnée comme suit nom, prénom, adresse, code postal et no de téléphone (Considérez par exemple qu’il s’agit des membres d’un club). 18
19. Exercice 2 Considérons que vous avez a votre disposition un fichier texte contenant des phrases de différentes longueurs. Ecrivezun script qui recherche et affiche la phrase la plus longue. 19
20. Exercice 3 A partir de deux fichiers préexistants A et B, construisez un fichier C qui contienne alternativement un élément de A, un élément de B, un élément de A... et ainsi de suite jusqu’a atteindre la fin de l’un des deux fichiers originaux. Complétez ensuite C avec les éléments restant sur l’autre. 20