SlideShare une entreprise Scribd logo
1  sur  20
Theme8Les fichiers 2011-03-24 1
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
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
En Python: un type de données est associé aux fichiers Opérations sur un fichier avec Python Ouverture Fermeture Lecture Écriture 4
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
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
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
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
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
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
É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
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
É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
Exemple: Ecriture dans un fichier A l’aide d’un script Python, ouvrir le fichier tst.txt en mode ajout, saisir  le contenu suivant Ouvrez le fichier et consultez son contenu. Que constatez vous? ,[object Object],Je viens d’ajouter du nouveau contenu Est-ce que ca change quelque chose? 14
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
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
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
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
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
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

Contenu connexe

Tendances

Usage des expressions régulières dans Openrefine
Usage des expressions régulières dans OpenrefineUsage des expressions régulières dans Openrefine
Usage des expressions régulières dans OpenrefineMathieu Saby
 
Nettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefineNettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefineMathieu Saby
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Mariem ZAOUALI
 
DNS sous linux
DNS sous linuxDNS sous linux
DNS sous linuxSouhaib El
 
Initiation à la fouille de texte - formation AJPro
Initiation à la fouille de texte - formation AJProInitiation à la fouille de texte - formation AJPro
Initiation à la fouille de texte - formation AJProEttore Rizza
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieAlexandru Radovici
 
Windows xp structure du registre
Windows xp   structure du registreWindows xp   structure du registre
Windows xp structure du registreDICKO Yacouba
 
Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0Idéative
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXSoukaina Boujadi
 

Tendances (20)

Aet pow isi_2017_chp2
Aet pow isi_2017_chp2Aet pow isi_2017_chp2
Aet pow isi_2017_chp2
 
Aet pow isi_2017_chp3
Aet pow isi_2017_chp3Aet pow isi_2017_chp3
Aet pow isi_2017_chp3
 
Usage des expressions régulières dans Openrefine
Usage des expressions régulières dans OpenrefineUsage des expressions régulières dans Openrefine
Usage des expressions régulières dans Openrefine
 
Nettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefineNettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefine
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers
 
DNS sous linux
DNS sous linuxDNS sous linux
DNS sous linux
 
Initiation à la fouille de texte - formation AJPro
Initiation à la fouille de texte - formation AJProInitiation à la fouille de texte - formation AJPro
Initiation à la fouille de texte - formation AJPro
 
Compteur de visites
Compteur de visitesCompteur de visites
Compteur de visites
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
 
Commande linux
Commande linuxCommande linux
Commande linux
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortie
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 
Python
PythonPython
Python
 
Go
GoGo
Go
 
Commande dos
Commande dosCommande dos
Commande dos
 
Openfire
OpenfireOpenfire
Openfire
 
Windows xp structure du registre
Windows xp   structure du registreWindows xp   structure du registre
Windows xp structure du registre
 
Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIX
 

En vedette

Réinventer le droit d'auteur
Réinventer le droit d'auteurRéinventer le droit d'auteur
Réinventer le droit d'auteurInno³
 
2011 03-06 powerpointsef
2011 03-06 powerpointsef2011 03-06 powerpointsef
2011 03-06 powerpointsefRicardo
 
Mondays at work - Servicios
Mondays at work - ServiciosMondays at work - Servicios
Mondays at work - ServiciosMondays at Work
 
Catalogue des formations outils-réseaux
Catalogue des formations outils-réseauxCatalogue des formations outils-réseaux
Catalogue des formations outils-réseauxoutilsreseaux
 
Mujeron
MujeronMujeron
MujeronSEEG
 
Estampació amb el tuxpaint
Estampació amb el tuxpaintEstampació amb el tuxpaint
Estampació amb el tuxpaintARAEE
 
Ley de medio ambiente
Ley de medio ambienteLey de medio ambiente
Ley de medio ambienteJuan Torres
 
Madame k - étape de travail juin 2011
Madame k - étape de travail juin 2011Madame k - étape de travail juin 2011
Madame k - étape de travail juin 2011ciedemain
 
2010 03-07 powerpointapc
2010 03-07 powerpointapc2010 03-07 powerpointapc
2010 03-07 powerpointapcRicardo
 
Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...
Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...
Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...AfricaAdapt
 
1207 support04 remise_niveausdb
1207 support04 remise_niveausdb1207 support04 remise_niveausdb
1207 support04 remise_niveausdbfranckdelafaye
 
Prueba de lenguaje grado 5 calendario A
Prueba de lenguaje   grado 5 calendario APrueba de lenguaje   grado 5 calendario A
Prueba de lenguaje grado 5 calendario AINDEIPCO LTDA
 
Book Conferencias 2015 David Martinez Calduch Keynote Speaker
Book Conferencias 2015 David Martinez Calduch Keynote SpeakerBook Conferencias 2015 David Martinez Calduch Keynote Speaker
Book Conferencias 2015 David Martinez Calduch Keynote SpeakerSoluciona Facil
 
A Voir et A Revoir
A Voir et A RevoirA Voir et A Revoir
A Voir et A Revoirlys167
 
Présentation.ok john l
 Présentation.ok john l Présentation.ok john l
Présentation.ok john lLaureanne
 
Optimiser ses relances commerciales
Optimiser ses relances commercialesOptimiser ses relances commerciales
Optimiser ses relances commercialesNeocamino
 

En vedette (20)

Réinventer le droit d'auteur
Réinventer le droit d'auteurRéinventer le droit d'auteur
Réinventer le droit d'auteur
 
2011 03-06 powerpointsef
2011 03-06 powerpointsef2011 03-06 powerpointsef
2011 03-06 powerpointsef
 
Mondays at work - Servicios
Mondays at work - ServiciosMondays at work - Servicios
Mondays at work - Servicios
 
Catalogue des formations outils-réseaux
Catalogue des formations outils-réseauxCatalogue des formations outils-réseaux
Catalogue des formations outils-réseaux
 
Mujeron
MujeronMujeron
Mujeron
 
Estampació amb el tuxpaint
Estampació amb el tuxpaintEstampació amb el tuxpaint
Estampació amb el tuxpaint
 
Ley de medio ambiente
Ley de medio ambienteLey de medio ambiente
Ley de medio ambiente
 
Madame k - étape de travail juin 2011
Madame k - étape de travail juin 2011Madame k - étape de travail juin 2011
Madame k - étape de travail juin 2011
 
2010 03-07 powerpointapc
2010 03-07 powerpointapc2010 03-07 powerpointapc
2010 03-07 powerpointapc
 
Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...
Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...
Hubert N'Djafa Ouaga: La prevision saisonniere scientifique: quel apport des ...
 
Preescolar 2011
Preescolar 2011Preescolar 2011
Preescolar 2011
 
1207 support04 remise_niveausdb
1207 support04 remise_niveausdb1207 support04 remise_niveausdb
1207 support04 remise_niveausdb
 
Encuesta
EncuestaEncuesta
Encuesta
 
Prueba de lenguaje grado 5 calendario A
Prueba de lenguaje   grado 5 calendario APrueba de lenguaje   grado 5 calendario A
Prueba de lenguaje grado 5 calendario A
 
Book Conferencias 2015 David Martinez Calduch Keynote Speaker
Book Conferencias 2015 David Martinez Calduch Keynote SpeakerBook Conferencias 2015 David Martinez Calduch Keynote Speaker
Book Conferencias 2015 David Martinez Calduch Keynote Speaker
 
A Voir et A Revoir
A Voir et A RevoirA Voir et A Revoir
A Voir et A Revoir
 
Présentation.ok john l
 Présentation.ok john l Présentation.ok john l
Présentation.ok john l
 
Optimiser ses relances commerciales
Optimiser ses relances commercialesOptimiser ses relances commerciales
Optimiser ses relances commerciales
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Formation documentaire 2012
Formation documentaire 2012Formation documentaire 2012
Formation documentaire 2012
 

Similaire à Theme 8

Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxManipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxolfaharrabi2
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxYallaHabibi5
 
La gestion des fichiers en python lire, ecrire des fichiers texte en python
La gestion des fichiers en python lire, ecrire des fichiers texte en pythonLa gestion des fichiers en python lire, ecrire des fichiers texte en python
La gestion des fichiers en python lire, ecrire des fichiers texte en pythondioufagm2
 
Les_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csvLes_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csvnadiamfr1
 
Stockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersStockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersLilia Sfaxi
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
Chapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptxChapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptxMoez Moezm
 
07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick noteHamza SAID
 
Gestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdfGestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdfMadaniAhlem2
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdfMARYAM510573
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 
Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Abib Faye
 
log file sous Netbeans et J2ME
log file sous Netbeans et J2MElog file sous Netbeans et J2ME
log file sous Netbeans et J2MEZied
 
Résumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrementRésumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrementborhen boukthir
 
http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....
http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....
http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....Abderrahim Bahssine
 

Similaire à Theme 8 (20)

Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxManipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptx
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsx
 
La gestion des fichiers en python lire, ecrire des fichiers texte en python
La gestion des fichiers en python lire, ecrire des fichiers texte en pythonLa gestion des fichiers en python lire, ecrire des fichiers texte en python
La gestion des fichiers en python lire, ecrire des fichiers texte en python
 
Les_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csvLes_fichiers_sousPython..TXT et JSON et csv
Les_fichiers_sousPython..TXT et JSON et csv
 
Stockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersStockage de données dans Android : Fichiers
Stockage de données dans Android : Fichiers
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
 
Chapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptxChapitre_Les fichiers_VF.pptx
Chapitre_Les fichiers_VF.pptx
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Python chapitre 6.pdf
Python chapitre 6.pdfPython chapitre 6.pdf
Python chapitre 6.pdf
 
07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note
 
Gestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdfGestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdf
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5
 
log file sous Netbeans et J2ME
log file sous Netbeans et J2MElog file sous Netbeans et J2ME
log file sous Netbeans et J2ME
 
Résumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrementRésumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrement
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....
http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....
http://www.allstreamvf.net http://www.allstreamvf.com http://www.wastreaming....
 
JAVA-IO.pdf
JAVA-IO.pdfJAVA-IO.pdf
JAVA-IO.pdf
 

Plus de salmazen

Plus de salmazen (20)

Theme 10
Theme 10Theme 10
Theme 10
 
Theme 10
Theme 10Theme 10
Theme 10
 
Theme 9(bis)
Theme 9(bis)Theme 9(bis)
Theme 9(bis)
 
Theme 9
Theme 9Theme 9
Theme 9
 
Theme 8(suite)
Theme 8(suite)Theme 8(suite)
Theme 8(suite)
 
Cours python
Cours pythonCours python
Cours python
 
Theme 7 (suite)
Theme 7 (suite)Theme 7 (suite)
Theme 7 (suite)
 
Theme 7
Theme 7Theme 7
Theme 7
 
Theme 6
Theme 6Theme 6
Theme 6
 
Theme 5
Theme 5Theme 5
Theme 5
 
Exemples for1
Exemples for1Exemples for1
Exemples for1
 
Exemples while2
Exemples while2Exemples while2
Exemples while2
 
Exemples for
Exemples forExemples for
Exemples for
 
Exemples if
Exemples ifExemples if
Exemples if
 
Exemples while
Exemples whileExemples while
Exemples while
 
Theme3
Theme3Theme3
Theme3
 
Theme4
Theme4Theme4
Theme4
 
Theme3
Theme3Theme3
Theme3
 
Exercice0
Exercice0Exercice0
Exercice0
 
Theme2
Theme2Theme2
Theme2
 

Theme 8

  • 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