Theme8Les fichiers2011-03-241
Un fichier textefichierTeste.txttot@gmail.comCeci est une ligne dans mon_fichierEncore Une autre ligne1- Premier élément de liste2- 2 eme élément de liste3- des nombres: 1 2 3 4 5 6 7 8 91Marqueur de fin de ligne2
Différents types de fichiersFichiers 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
En Python: un type de données est associé aux fichiersOpérations sur un fichier avec PythonOuvertureFermetureLectureÉcriture4
Emplacements de fichiers (1/2)Récupérer le dossier courant où pointe le programme (getcurrentworking directory)import osrep_cour= os.getcwd()Pointer sur un autre dossier (change directory)os.chdir("c:/test1")5
Emplacements de fichiers (2/2) Exemple: créer le dossier ‘Fichiers Tp Python’ sur ‘c:/’Tester le script suivantimport osprintos.getcwd()os.chdir("C:/Fichiers Tp Python")printos.getcwd()6
Ouverture d’un fichierAssocier un fichier dont on spécifie le nom à une variableTrois modes d’ouvertureEn lecture: Lire le fichier dès son début, ligne par lignef1 = open(monFichier_1, "r") # en lecture (read)En écriture: Écraser l’ancien contenu et écrire par dessusf2 = open(monFichier_2, "w") # en écriture (write)En ajout: Écrire à la suite de l’ancien contenuf3 = open(monFichier_3, "a") # en ajout  (append)7
Fermeture d’un fichierSyntaxe:		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 à nouveau8
Lecture d’un fichierEtape 1: Ouverture du fichier en mode lecturef = open("monFichier_1", "r")Etape 2: Appeler la fonction read(+srssynatxes)s = f.read() # lit tout le fichier :: strings = f.read(n)		 # lit au plus n caractères:: strings = f.readline() # lit la ligne suivante :: strings = f.readlines() # lit tout le fichier :: liste de stringsfor ligne in f:printligne # bon procédéde parcours d’un fichierEtape 3: Fermer le fichierf.close()9
Exemple: Ouverture d’un fichierCréer  dans le dossier précédent un fichier avec un éditeur de texte tst.txt dont le contenu est le suivantEcrire un script en Python pour l’ouvrir en lecture et  afficher son contenu selon les différentes méthodesDébut de mon fichierLigne 1Ligne 2Ligne 3Fin de mon fichier10
Écriture dans un fichier (1/2)Etape 1: Ouverture du fichier en mode écriture (write)f3 = open("nomPrenom", "w")Etape 2: Appeler la fonction writetmpNomPrenom= "Bouchard, Josee"   f3.write(tmpNomPrenom) # ecriture d’une lignelst= [’a’, ’b’, ’c’]f3.writelines(lst)          # ecriture d’un ensemble de lignesprint>> f3, "abcd"# ecritdans f3 en mode ajoutEtape 3: Fermer le fichierf.close()11
Exemple: Ecriture dans un fichierA l’aide d’un script Python, ouvrir le fichier tst.txt en mode écriture, saisir  le contenu suivantOuvrez le fichier et consultez son contenu. Que constatez vous?Je viens de saisir du nouveau contenuEst-ce que l’ancien contenu va rester?Est-ce qu’il sera écrasé?12
Écriture dans un fichier (2/2)Etape 1: Ouverture du fichier en mode ajout (append)f3 = open("nomPrenom", "a")Etape 2: Appeler la fonction writeEtape 3: Fermer le fichierf.close()13
Exemple: Ecriture dans un fichierA l’aide d’un script Python, ouvrir le fichier tst.txt en mode ajout, saisir  le contenu suivantOuvrez le fichier et consultez son contenu. Que constatez vous?Quelle est la différence entre l’écriture en mode write et append?Je viens d’ajouter du nouveau contenuEst-ce que ca change quelque chose?14
Noms de fichiers et de dossiersQue 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
Traiter l’exception d’ouverture de fichierSi 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’exceptionTry:                                 f1=open(nomFichier1,"r") Except: 		# bloc à exécuter en cas de génération d’exceptionprint "Le fichier " , nomFichier1,"n’existe pas"16
Le module «Pickle»Il permet la conservation des types :import picklea, b = 5, 2.83f = open("monFichier.txt", "w") # en ´ecriturepickle.dump(a, f)pickle.dump(b, f)f.close()f = open("monFichier.txt", "r") # en lecturet = 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
Exercice 1Ecrivez un script qui permette d’encoder un fichier texte dont les lignes contiendront chacune les informations relatives à une personne donnée comme suitnom, 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
Exercice 2Considé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
Exercice 3A 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

Theme 8

  • 1.
  • 2.
    Un fichier textefichierTeste.txttot@gmail.comCeciest une ligne dans mon_fichierEncore Une autre ligne1- Premier élément de liste2- 2 eme élément de liste3- des nombres: 1 2 3 4 5 6 7 8 91Marqueur de fin de ligne2
  • 3.
    Différents types defichiersFichiers 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: untype de données est associé aux fichiersOpérations sur un fichier avec PythonOuvertureFermetureLectureÉcriture4
  • 5.
    Emplacements de fichiers(1/2)Récupérer le dossier courant où pointe le programme (getcurrentworking directory)import osrep_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 suivantimport osprintos.getcwd()os.chdir("C:/Fichiers Tp Python")printos.getcwd()6
  • 7.
    Ouverture d’un fichierAssocierun fichier dont on spécifie le nom à une variableTrois modes d’ouvertureEn lecture: Lire le fichier dès son début, ligne par lignef1 = open(monFichier_1, "r") # en lecture (read)En écriture: Écraser l’ancien contenu et écrire par dessusf2 = open(monFichier_2, "w") # en écriture (write)En ajout: Écrire à la suite de l’ancien contenuf3 = open(monFichier_3, "a") # en ajout (append)7
  • 8.
    Fermeture d’un fichierSyntaxe: f1.close()Permetde rendre le fichier disponible pour d’autres traitements Exemple: après avoir lu un fichier, nous désirons écrire dedans et le relire à nouveau8
  • 9.
    Lecture d’un fichierEtape1: Ouverture du fichier en mode lecturef = open("monFichier_1", "r")Etape 2: Appeler la fonction read(+srssynatxes)s = f.read() # lit tout le fichier :: strings = f.read(n) # lit au plus n caractères:: strings = f.readline() # lit la ligne suivante :: strings = f.readlines() # lit tout le fichier :: liste de stringsfor ligne in f:printligne # bon procédéde parcours d’un fichierEtape 3: Fermer le fichierf.close()9
  • 10.
    Exemple: Ouverture d’unfichierCréer dans le dossier précédent un fichier avec un éditeur de texte tst.txt dont le contenu est le suivantEcrire un script en Python pour l’ouvrir en lecture et afficher son contenu selon les différentes méthodesDébut de mon fichierLigne 1Ligne 2Ligne 3Fin de mon fichier10
  • 11.
    Écriture dans unfichier (1/2)Etape 1: Ouverture du fichier en mode écriture (write)f3 = open("nomPrenom", "w")Etape 2: Appeler la fonction writetmpNomPrenom= "Bouchard, Josee" f3.write(tmpNomPrenom) # ecriture d’une lignelst= [’a’, ’b’, ’c’]f3.writelines(lst) # ecriture d’un ensemble de lignesprint>> f3, "abcd"# ecritdans f3 en mode ajoutEtape 3: Fermer le fichierf.close()11
  • 12.
    Exemple: Ecriture dansun fichierA l’aide d’un script Python, ouvrir le fichier tst.txt en mode écriture, saisir le contenu suivantOuvrez le fichier et consultez son contenu. Que constatez vous?Je viens de saisir du nouveau contenuEst-ce que l’ancien contenu va rester?Est-ce qu’il sera écrasé?12
  • 13.
    Écriture dans unfichier (2/2)Etape 1: Ouverture du fichier en mode ajout (append)f3 = open("nomPrenom", "a")Etape 2: Appeler la fonction writeEtape 3: Fermer le fichierf.close()13
  • 14.
    Exemple: Ecriture dansun fichierA l’aide d’un script Python, ouvrir le fichier tst.txt en mode ajout, saisir le contenu suivantOuvrez le fichier et consultez son contenu. Que constatez vous?Quelle est la différence entre l’écriture en mode write et append?Je viens d’ajouter du nouveau contenuEst-ce que ca change quelque chose?14
  • 15.
    Noms de fichierset de dossiersQue 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’ouverturede fichierSi 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’exceptionTry: f1=open(nomFichier1,"r") Except: # bloc à exécuter en cas de génération d’exceptionprint "Le fichier " , nomFichier1,"n’existe pas"16
  • 17.
    Le module «Pickle»Ilpermet la conservation des types :import picklea, b = 5, 2.83f = open("monFichier.txt", "w") # en ´ecriturepickle.dump(a, f)pickle.dump(b, f)f.close()f = open("monFichier.txt", "r") # en lecturet = 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 1Ecrivez unscript qui permette d’encoder un fichier texte dont les lignes contiendront chacune les informations relatives à une personne donnée comme suitnom, 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 2Considérons quevous 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 3A partirde 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