CPGE OUJDA                                                                                                                                                                                                                                                     Sup

 

 

Les fichiers en Python

 

 

Introduction

 

 

 Un fichier stocke des informations sur un support physique : disque   dur,   CD,   DVD, clé USB, CD,

 Il existe deux types de fichiers :

 Les fichiers textes : l'information est stockée sous forme de caracres lisibles par un éditeur de texte. Une organisation structurée est, en général, associée à ce type de fichiers.

 Les fichiers binaires : l'information est stockée sous forme binaire

 

Open(Ouverture)

 


 

 


 

 

   Fonction "open()"

 

open(filename, mode).

      mode

      w = “write mode

      a = append mode

      wb = “write in binary

      “r” = “read mode (default)

      “rb = “read in binary

      “U” = “lit les fichiers avec Unix or Windows avec fin de lignes


 

 

input_file = open(“in.txt")

output_file = open(“out.txt", "w")

 

 

 

Lecture écriture

 

 L'écriture dans un fichier se fait avec la fonction

write() en mode écriture.

      La lecture de données d'un fichier se fait avec la fonction read() en mode écriture


 

 

unFichier = 'datat.txt'

 

fw = open(unFichier,'w')        # la fonction open() retourne un objet

 

# écriture dans le fichier avec la méthode write()

 

fw.write("Mes premières aventures avec les fichiers!')

 

# fermeture du fichier avec la méthode close()

 

fw.close()

 

fr= open(unFichier,'r')

 

 info=fr.read()

 

 print(info)

 

fr.close()


 

 

Fichiers textes

 

 

      Les fichiers texte sont structurés en lignes et en pages.

      Afin de traiter plus facilement un fichier texte on utilisera le marqueur  de fin de ligne.

      La fonction readline() lira toute une ligne du fichier en y incluant le marqueur de fin de ligne

      Sous Windows : séquence de deux octets, retour chariot +

saut de ligne

      

 

Fichiers binaires

 

      L'encodage binaire utilise une représentation proche de la machine.

      Le module "pickle" permet de traiter des fichiers en mode binaire.

      La méthode dump()  permet d'écrire des données de toutes sortes dans un fichier.

      La méthode load() permet de lire des données de toutes sortes dans un fichier.

 

Exemple :

 

from pickle import *

 

unFichier = 'databin.txt'

fw = open(unFichier,'wb')

 

info =[10,20,30]

 dump(info, fw)

 info= 100

dump(info, fw)

info = "essai"

dump(info, fw)

fw.close()

fr= open(unFichier,'rb')

try :

    while 1 : info=load(fr) print(info)

except :

    fr.close()


 

L'instruction with

 


 

 


 

 

      L'instruction with permet d'éviter d'utiliser un mécanisme d'exceptions afin de lire ou écrire dans un fichier

 

Exemple :


 
 

 

 


 

Zone de Texte:  
from pickle import *
 
unFichier = 'databin.txt'
 
fw = open(unFichier,'wb')
 
 
info =[10,20,30]
 
 dump(info, fw)
 
 info= 100
 
 dump(info, fw) 
 
info = "essai"
 
dump(info, fw)
 
fw.close()
 
fr= open(unFichier,'rb')
 
with fr:
 
 info=load(fr)
 
print(info)

 
 
 
Ou bien
 
 
from pickle import *
 
unFichier = 'databin.txt'
 
fw = open(unFichier,'wb')
 
info =[10,20,30] 
 
dump(info, fw)
 
 info= 100
 
 dump(info, fw)
 
 info = "essai"
 
dump(info, fw)
 
fw.close()
 
with open(unFichier,'rb') as fr
 
info=load(fr)
 
print(info)
 
 
         
 
                        

  

 

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Exercices :

 

Ex. 1. Écrire une fonction qui renvoie un dictionnaire composé de chaque mot contenu dans le fichier

dico.txt (à créer) (la valeur associée à la clef n’a pas d’importance dans cet exercice). Le fichier dico.txt est composé de lignes contenant chacune un mot en majuscule. Chaque mot est unique.

Ensuite, écrire une fonction qui vérifie qu’un mot donné en paramètre est bien dans ce dictionnaire.

dico  =  load_dico("dico.txt")

print(is_in_dico("bonjour",dico))  #->  True

Ex. 2.  Écrire une fonction qui renvoie un dictionnaire contenant le nombre d’occurrences de chaque mot du fichier hamlet.txt qui est à creer.

Créez ensuite une fonction qui détermine le mot le plus utilisé dans ce texte.

dico  =  occurences_of_words("hamlet.txt")

print(most_frequent_word(dico))  #  ->  THE

Ex. 3.  Soit le fichier address.dat suivant :

LastName  :  Ahmed FirstName  :  Ouali Office  :  UB4.131

Phone  :  026503766

================== LastName  : Ali FirstName  :  Benali

Les entrées sont séparées par une ligne de 20 signes =. Elles sont composées de champs de forme cle  :  valeur séparés par des retour à la ligne. Les champs LastName et d’un FirstName sont obligatoires et les champs Office et Phone sont optionnels. L’ordre des entrées et des champs n’a pas d’importance.

Écrire un programme qui permet :

 de charger le carnet d’adresse dans une liste de dictionnaires,

 d’afficher le carnet d’adresse

 d’ajouter une entrée dans le carnet d’adresse,

 de supprimer une entrée dans le carnet d’adresse et

 de sauvegarder le carnet d’adresse dans le fichier address.dat