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
© Copyright 2024 ExpyDoc