Python Données Fichiers

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 21

Python

& la
Manipulation
des Données
1

Part I
Les fichiers

S.DARRAGI
Plan
2

 Introduction
 Opérations élémentaires sur les fichiers
 Création (ouverture/ fermeture)

 Accès (lecture / écriture)

 Application sur un fichier texte


 Module Pickle
Introduction
3

Jusqu'a présent, nous n'avons travaillé


que sur des données rentrées par
l'utilisateur (input).
Evidemment, un programme doit être
capable d'aller chercher des informations
dans un fichier (fichier texte par
exemple) et écrire des résultats dans un
(autre) fichier.
Python propose un objet Fichier < file >
et un ensemble de méthodes pour lire et
écrire depuis/dans un fichier
Fichier : Ouverture / fermeture
4
On commence par ouvrir un fichier pour pouvoir
le lire.
Cela se fait avec la fonction open qui renvoie un
objet de type file.
Open prend le nom du fichier en paramètre, ainsi
qu'un indicateur du mode de lecture/écriture, et
renvoie un fichier que l'on pourra lire.
fichier = open("nom_fichier", ’’mode")
L’objet fichier (nom logique du fichier physique
nom_fichier) est maintenant une variable sur
lequel on pourra appliquer des méthodes
permettant de lire et/ou écrire dans ce fichier.
Une fois utilisé, on ferme le fichier en appelant la
méthode close de ce fichier.
fichier.close()
Fichier : Modes d’Ouverture…
5

 Il existe plusieurs modes d’ouverture de


fichiers:
 ‘’r’’ : ouverture en mode read, le fichier doit exister, s’il
n’existe pas une erreur se produit
 ‘’w’’: ouverture en mode write, si le fichier existe il
l’ouvre écrase le contenu et positionne le curseur au
début, sinon le fichier sera créé
 ‘’a’’ : ouverture en mode ajout ‘’append’’, si le fichier
n’existe pas il sera créé
 ‘‘wb’’ : ouverture en mode write binary
 ‘’rb’’ : ouverture en mode read binary (utile combiné au
module pickle !)
 ‘’r+’’, ‘’w+’’, ‘’a+’’
Ouverture d’un fichier
6

try:
fich=open("test.txt","r")
# opérations sur le fichier…..
fich.close()
except :
print("fichier introuvable")

Si le fichier n’existe pas la clause except sera


déclenchée pour préciser la non existence du fichier!!
Création/ Ecriture dans un fichier
7

Pour écrire dans un fichier, il faut l'ouvrir en


mode écriture avec l'un de ces indicateurs :
"w" : pour (re)écrire un fichier en partant de zéro
(w comme write)
"a" : pour écrire à la suite du contenu d'un fichier
existant (a comme append / ajout )
C’est la méthode write qui permet d‘écrire dans
le fichier si le fichier n’existe pas elle le créera !
L'argument de la méthode write() doit être une
chaîne de caractères.
Création/ Ecriture dans un fichier
8

fich=open("test.txt",“w")
# opérations sur le fichier…..
fich.close()
 Si le fichier n’existe pas il sera créé,
 Si le fichier existe le contenu sera
effacé et le pointeur se positionnera
au début
Création/ écriture
Fichier texte
9

fich=open("test.txt","w")
fich.write(“Salut \n ceci est mon premier
fichier texte créé depuis Python!!!!")
fich.close()

NB :Le fichier est créé dans le répertoire courant ! Si


vous voulez changer de répertoire il faut importer le
module os et utiliser la commnade chdir:change diractory!!!
Changer le répertoire de travail
courant
Exemple 10
On souhaite travailler dans le dossier situé à
C:\Users\sousou\Desktop\formation DEVOPS
Il faut importre le module os par
import os
cheminsouhaité="C:\\Users\\sousou\\Desktop\\formationDEVOPS"
actuel1= os.getcwd() # verifier le chemin courant
print (" Repertoire courant" ,actuel1)
# changer le répertoire courant au chemin souhaité
os.chdir(cheminsouhaité)
# Verifier si l’on sait bien placé dans le répertoire souhaité
Actuel2= os.getcwd()
print ( " Répertoire courant modifié avec succés " , actuel2)
Lecture depuis un Fichier
11
f=open("test.txt","r")
ch=f.read()
print(ch, type(ch))
f.close()
 La méthode read lit le contenu de tout le fichier
dans une chaine formatée de la même manière
avec laquelle le texte a été enregistré dans le
fichier!
 Nous pouvons lire un nombre prèci de caractères
: ch=f.read(5) lit les 5 premiers caractères!
 NB: Un fichier fermé ne peut être lu!!
Lecture depuis12un Fichier
Deux autre méthodes existent pour la lecture
readline (lecture d’une seule ligne) et readlines
retournant un liste contenant toutes les lignes du
fichier texte.
La lecture dans un fichier est une lecture
séquentielle !
#lecture d’une ligne
f=open("test.txt","r")
Ligne_cour=f.readline()
print(Ligne_cour, type(Ligne_cour))
>>>
Salut
<class 'str'>
Lecture depuis un
13
Fichier (suite)
f=open("test.txt","r")
L=f.readlines()
print(L, type(L))
>>>
['Salut \n', 'ceci est mon premier fichier texte\n',
'créé depuis Python!!!'] <class 'list'>
Deux méthodes sont utiles pour l’extraction des
données strip() et split()

Strip() :enlève le caractère de saut de ligne


Split() :retourne une liste contenant les chaines
séparés selon les espace sinon préciser le séparateur
Exemple (rappel)
14
>>> ch="kj, kj kj , kjkjk kjk , kjkj\n"
>>> ch.strip()
'kj, kj kj , kjkjk kjk , kjkj'
>>> ch.strip().split()
['kj,', 'kj', 'kj', ',', 'kjkjk', 'kjk', ',',
'kjkj']
>>> ch.strip().split(',')
['kj', ' kj kj ', ' kjkjk kjk ', ' kjkj']
Exemple
15

readline (sans les) permet de lire une ligne du fichier


et fait avancer le curseur
A chaque appel à readline, une nouvelle ligne est lue
(il faut donc itérer la lecture jusqu'a ce que la ligne
soit vide)
ligne = " init "
print(ligne)
while ligne != "":
ligne = fichier. readline ()
print ( ligne)
L’itération avec for in : permet d'itérer sur le fichier
ligne par ligne, le fichier est un itérable !
for ligne in fichier :
print (ligne)
Fichier binaire – Module pickle
16

Dans un fichier binaire les informations sont


transférées de la RAM vers le support de stockage
sans aucun formatage (aucun encodeur n’est utilisé).
Pour les fichiers binaires, le mode d’ouverture est
suffixé par 'b' :
'wb', 'rb' et 'ab'
Utilisation du Module Pickle
Soit: a=2.34 ; b="bonjour«
17 ;c=100
Un problème lié à la lecture !!!! Comment distinguer
les trois valeurs? Entier, réel chaîne de caractères
En utilisant le module pickle
import pickle
f=open("test2","wb")
a=2.34;b="bonjour " ;c=100
pickle.dump(a,f)
pickle.dump(b,f)
pickle.dump(c,f)
f.close()
Module Pickle…
18
f=open("test2 ’’,"rb")
a1=pickle.load(f)
>>> #trace d’écution
print(a1, type(a1))
2.34 <class 'float'>
a2=pickle.load(f) bonjour <class 'str'>
print(a2, type(a2)) 100 <class 'int'>
a3=pickle.load(f)
print(a3, type(a3))
Application…
19

Ecrire un programme qui permet de créer un


carnet d’adresse de N élèves et les
enregistre dans un fichier .txt sous le nome
carnet_etud.txt
On demandera le nom, le prénom, l’age et
l’adresse .
20
21

«Je crains le jour où la technologie


dépassera l'homme. Le monde aura une
génération d'idiots."

Vous aimerez peut-être aussi