Cours 7 : Python et les fichiers Pourquoi ? Module os Module os

Pourquoi ?
Deux approches des fichiers dans python
Cours 7 : Python et les fichiers
1) Python : outil de manipulation de fichiers
2) les fichiers pour conserver des données Python
Les fichiers – p.1
Module os
Les fichiers – p.2
Module os
getcwd() : fournit le répertoire courant
Le module os : manipulation de fichiers (et de répertoires)
chdir(nomrep) : se place dans le répertoire nomrep
rename(src,dest) : renomme src en dest
1) parcourir
2) renommer
remove(chemin), rmdir(chemin) : supprime
chemin
3) création/destruction de répertoires
mkdir(chemin) : crée le répertoire chemin
listdir(chemin) : liste des fichiers/rep de chemin
system(commande) : exécute la commande
commande
Pas de copie de fichiers
Exemples : rename(’prog.py’,’tp3.py’)
mkdir(’u:\monRep\python\tp5’)
system(’cat /proc/pci |grep ati > log’)
Les fichiers – p.3
Module os.path
Les fichiers – p.4
Module shutil
Utilisation : from os.path import *,
ou import os.path
Ce module fournit des fonctions de copie :
split(chemin) : fournit le tuple (repertoire,
fichier)
copy(src,dest) : copie complète du fichier (y
compris les droits)
join(chemin,...) : fournit un nom complet :
/plus/de/un/rep/unFichier
copyfile(src,dest) : copie du fichier sans les
droits
exists(chemin) : vrai si chemin existe
isfile(chemin) : vrai si chemin est un fichier
isdir(chemin) : vrai si chemin est un répertoire
walk(chemin,fonc,arg) : voir TP 3
Les fichiers – p.5
Module shutils
Les fichiers – p.6
Fichiers logiques
Pour manipuler le contenu de fichier il faut définir des
fichiers logiques (ou objets fichier)
Deux fonction centrales :
Voir le fichier copie.py
open(nom,mode) : ouvre le fichier nom avec le mode
mode (principalement ’r’ ou ’w’)
obFic.close() : ferme l’objet fichier obFic
Exemple :
ficLog=open(’test.txt’,’r’) # Ouvre ficLog
ficLog.close() # Ferme ficLog
Les fichiers – p.7
Les fichiers – p.8
Lecture
Écriture
On a : ficLog=open(’entree.txt’,’r’)
On a : ficLog=open(’sortie.txt’,’w’)
ficLog.read() : fournit la totalité de ficLog sous
forme d’une chaîne de caractères
ficLog.write(ch) : écrit la chaîne ch dans ficLog
ficLog.read(n) : fournit n caractères de ficLog à
partir de la position courante
ficLog.writelines(list) : écrit les chaîne de
list dans ficLog
ficLog.readline() : fournit une ligne de ficLog
sous forme d’une chaîne de caractères
ficLog.readlines() : fournit la totalité de ficLog
sous forme d’une liste de chaîne de caractères
Les fichiers – p.9
Exemple
Les fichiers – p.10
Exercice
écrire un programme qui recopie le fichier
source.txt dans le fichier but.txt en supprimant toutes
les lignes qui commencent par le symbole #.
Exercice :
Exemple d’utilisation des fichiers logiques
fic1=open(’source.txt’,’r’)
fic2=open(’but.txt’,’w’)
ch=fic1.readline()
while ch!="":
fic2.write(ch)
ch=fic1.readline()
fic1.close() # Ne pas oublier ’()’
fic2.close()
Les fichiers – p.12
Les fichiers – p.11
Limitations
Le module Pickle
Exemple :
import pickle
Problème :
Quand on stocke des données dans un fichier elles sont
mises les unes à la suite des autres
Exemple :
a=5
b=6.25
c=12
fic=open(’test.txt’,’w’)
pickle.dump(5,fic) # Stockage
pickle.dump(6.25,fic)
fic.close()
fic=open(’test.txt’,’r’)
a=pickle.load(fic) # Restoration
b=pickle.load(fic)
print a,b,type(a),type(b)
fic=open(’test.txt’,’w’)
fic.write(str(a))
fic.write(str(b))
fic.write(str(c))
fic.close()
fic=open(’test.txt’,’r’)
print fic.read()
56.2512
fic.close()
fic.close()
Les fichiers – p.13
Les fichiers – p.14