theme 8

Post on 09-Jun-2015

653 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

THEME 8

LES FICHIERS2011-03-24

2

UN FICHIER TEXTE fichierTeste.txt

tot@gmail.comCeci 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

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.

4

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

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

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

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

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)

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

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

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

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

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é?

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

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?

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)

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"

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

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

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.

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.

top related