theme 8

20
THEME 8 LES FICHIERS 2011-03-24 1

Upload: salmazen

Post on 09-Jun-2015

653 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Theme 8

1

THEME 8

LES FICHIERS2011-03-24

Page 2: Theme 8

2

UN FICHIER TEXTE fichierTeste.txt

[email protected] est une ligne dans mon_fichierEncore Une autre ligne1- Premier élément de liste2- 2 eme élément de liste

3- des nombres: 1 2 3 4 5 6 7 8 9

1

Marqueur de fin de ligne

Page 3: Theme 8

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.

Page 4: Theme 8

4

En Python: un type de données est associé aux fichiers

Opérations sur un fichier avec Python Ouverture Fermeture Lecture Écriture

Page 5: Theme 8

5

EMPLACEMENTS DE FICHIERS (1/2)

Récupérer le dossier courant où pointe le programme (get current working directory)

import os rep_cour = os.getcwd()

Pointer sur un autre dossier (change directory) os.chdir("c:/test1")

Page 6: Theme 8

6

EMPLACEMENTS DE FICHIERS (2/2)

Exemple: créer le dossier ‘Fichiers Tp Python’ sur ‘c:/’

Tester le script suivant

import os

print os.getcwd()

os.chdir("C:/Fichiers Tp Python")

print os.getcwd()

Page 7: Theme 8

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)

Page 8: Theme 8

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

Page 9: Theme 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 (+srs synatxes)

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: print ligne # bon procédé de parcours d’un fichier

Etape 3: Fermer le fichier f.close()

Page 10: Theme 8

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 fichierLigne 1Ligne 2Ligne 3Fin de mon fichier

Page 11: Theme 8

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" # ecrit dans f3 en mode ajout

Etape 3: Fermer le fichier f.close()

Page 12: Theme 8

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 contenuEst-ce que l’ancien contenu va rester?Est-ce qu’il sera écrasé?

Page 13: Theme 8

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()

Page 14: Theme 8

14

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?

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?

Page 15: Theme 8

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)

Page 16: Theme 8

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"

Page 17: Theme 8

17

LE MODULE «PICKLE»

Il permet la conservation des types :import pickle

a, 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()

Page 18: Theme 8

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).

Page 19: Theme 8

19

EXERCICE 2

Considérons que vous avez a votre disposition un fichier texte contenant des phrases de différentes longueurs.

Ecrivez un script qui recherche et affiche la phrase la plus longue.

Page 20: Theme 8

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.