Ch 6. Manipulation de fichiers.

Documents pareils
1 Lecture de fichiers

TP 1. Prise en main du langage Python

Chapitre 1 Qu est-ce qu une expression régulière?

SEMIN. Données sous R : stockage et échange. Julio PEDRAZA ACOSTA

Pratiques et usages du web, la «culture internet» moderne

Initiation à la Programmation en Logique avec SISCtus Prolog

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

La saisie d un texte

Outils pour la pratique

SYSTÈME DE GESTION DE FICHIERS

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Exonet : sauvegarde automatisée d une base de données

Pluridisciplinarité. Classe de BTS DATR

Programmation système de commandes en C

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Septembre Décembre 2015

Ateliers Bureautique et Internet

Présentation du langage et premières fonctions

Programmation impérative

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Algorithme. Table des matières

Introduction à la présentation graphique avec xmgrace

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Publipostage avec Open Office Writer et Open Office Calc (v.3)

Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC.

Petit guide d utilisation Prezi

SAGASAFE Mode d'emploi de la série DCP Version 7.0

Il est courant de souhaiter conserver à

Réparer un disque dur passé en RAW

Dans l'article précédent, vous avez appris

Le Network File System de Sun (NFS)

Dans cette Unité, nous allons examiner

Présentation de Firefox

Introduction à l informatique en BCPST

SPIP 1.9. Créer son site avec des outils libres. Michel-Marie Maudet Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Perline

1. Structure d'un programme FORTRAN 95

Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Chapitre 2. Eléments pour comprendre un énoncé

Publipostage avec Open Office Writer et Open Office Calc

Le publipostage avec Open Office

Rédiger pour le web. Objet : Quelques conseils pour faciliter la rédaction de contenu à diffusion web

Base élèves : des étiquettes avec OpenOffice 2.0

Réparer un disque dur passé en RAW

LA TABLETTE, UN OUTIL POLYVALENT!

1 Démarrage de Marionnet

Mon aide mémoire traitement de texte (Microsoft Word)

I) INTRODUCTION... 3 II) ENREGISTREMENT DE SON TYROS

2014/2015. Rapport 4 REALISE PAR : ISMAIL NAIT ABDELLAH OUALI SOUFIANE HOURRI MOHAMED OUSSAFI ENCADRE PAR : MME L.LAMRINI ANOUAR OUFQIR SMARTSIR

Mylène a besoin d aide!

Les déclencheurs. Version 1.0. Grégory CASANOVA

Ce TP consiste à installer, configurer et tester un serveur DNS sous Linux. Serveur open source : bind9 Distribution : Mandriva

GlobalScape Secure FTP Server Buffer Overflow

Initiation à la programmation en Python

Projet Matlab : un logiciel de cryptage

Cours de Système : Gestion de Fichiers

GRAMMATICAUX DE CATÉGORIES DIFFÉRENTES QUANT QUAND 1 Homophones grammaticaux de catégories différentes

NE TENTE PAS LA CHANCE

Guide d usage pour Word 2007

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

à l édition de textes

Programmation système I Les entrées/sorties

Exploiter les fonctionnalités de son compte Google

majuscu lettres accent voyelles paragraphe L orthographe verbe >>>, mémoire préfixe et son enseignement singulier usage écrire temps copier mot

Tapori France ATD Quart Monde /5

TD d économétrie appliquée : Introduction à STATA

FEN FICHE EMPLOIS NUISANCES

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Informations sur l utilisation du webmail du CNRS. Webmail du CNRS. Manuel Utilisateur

Tutoriel D utilisation. Du PGI Open line d EBP

!!! La solution bureautique collaborative 100% gratuite!!!

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

Comment optimiser les encodages financiers?

L informatique en BCPST

Puissances d un nombre relatif

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Modules Prestashop - ExportCatalogue / EXPORT IMPORT POUR MODIFICATIONS EN MASSE DANS PRESTASHOP VERSION Optim'Informatique

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Système de gestion des inscriptions en ligne pour les Expo-sciences du Québec

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

CAPTURE DES PROFESSIONNELS

1. Introduction / Identification

Le système de gestion des fichiers, les entrées/sorties.

Questionnaire pour le Jumeau B Second né

des Données et Référentiels sur l'eau Service d'administration Nationale

Logiciels de gestion FAC. Analyste AgExpert. Guide de démarrage rapide 2014

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Python - introduction à la programmation et calcul scientifique

Deuxième Licence en Informatique Data Warehousing et Data Mining La Classification - 1

Guide préparatif «Automatiser sa vigie sur Twitter avec R» 1

FAA : Fonctions Automatiques de l Application. Les fonctions automatiques incluses dans vos applications développées avec

Apprendre à manipuler le clavier Médiathèque de Bussy Saint-Georges APPRENDRE A MANIPULER LE CLAVIER

E-Remises Paramétrage des navigateurs

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Transcription:

PTSI2 2015/2016 Info Lycée La Martinière-Monplaisir Lyon Ch 6. Manipulation de fichiers. Nous allons apprendre comment manipuler des fichiers texte à l aide de Python ; plus précisément, on pourra extraire le contenu de fichiers existants et créer de nouveau fichiers. Cela permet par exemple de traiter un grand nombre de données qui seraient stockées dans un fichier préexistant, ou de sauvegarder un grand nombre de résultats dans un nouveau fichier. 1 Mode lecture Le principe est le suivant : On ouvre un fichier. On récupère les lignes du fichier pour pouvoir les manipuler. On ferme le fichier. 1.a Ouverture et fermeture d un fichier en mode lecture On dispose d un fichier texte préexistant, par exemple fichier_texte.txt, se trouvant dans le même répertoire que votre fichier python. On "ouvre" alors le fichier texte en mode "lecture" dans le fichier python avec l instruction : f = open( fichier_texte.txt, r ) # r comme read = lecture f est alors un objet python : on peut le voir comme un curseur qui pointe au début du fichier et auquel on peut demander de "lire" les lignes (c.f. après). Les lignes seront des chaînes de caractères (de type string). Une fois le traitement des données effectué, on ferme le fichier via la méthode close : Il est conseillé d écrire cette instruction aussitôt après avoir écrit l instruction open. Si on l oublie, la plupart du temps on ne verra pas la différence, mais pas toujours... Remarques L encodage des fichiers diffère selon le système d exploitation. S il y a des problèmes lors de la manipulation des fichiers, on peut imposer un encodage UTF8 en écrivant : open( fichier_texte.txt, r, encoding= utf8 ) Le fichier texte doit se trouver dans le même répertoire que le fichier python que vous êtes en train d écrire ; s il se trouve dans un autre répertoire, on peut indiquer le chemin complet du fichier texte : par exemple open( chemin/fichier_texte.txt, r ). On peut aussi traiter des fichiers au format csv, fichiers texte destinés à être lus par un tableur. 1

1.b Lecture séquentielle Entre les instructions f = open... et, on peut récupérer les lignes du fichier dans une liste à l aide de l instruction suivante : La variable les_lignes contient la liste des lignes du fichier. Chaque élément de la liste est une chaîne de caractères. Ainsi, les_lignes[0] contient la première ligne du fichier. Prenons par exemple le fichier contenant le texte suivant, ici ouvert dans un éditeur de texte : S il a bien été ouvert avec f = open..., l exécution de puis print(les_lignes) donnera : Python shell ["Mon aimée adorée avant que je m en aille\n", Avant que notre amour triste défaille\n, "Râle et meure ô m amie une fois\n", Il faut nous promener tous les deux seuls dans les bois\n, "Alors je m en irai plus heureux que les rois."] Exercice : Créer le mot obtenu en accolant les premières lettres de chaque ligne 1. Remarque : On peut aussi lire ligne par ligne avec la syntaxe suivante (mais l utilisation de f.readlines() est préférable) : for ligne in f: print(ligne) 1. Le texte en question est un poème d Apollinaire, c est un acrostiche : les premières lettres de chaque ligne forment un mot. 2

2 Ecriture dans un fichier Pour écrire dans un fichier, on l ouvre et on le ferme de la même manière, sauf qu on met l option w (pour write ) au lieu de r. On peut alors écrire dans le fichier à l aide de la méthode write. L instruction sera f.write( texte à écrire ) Attention : Lorsqu on fait f = open( fichier.txt, w ) puis : si fichier.txt n existait pas auparavant, il est créé ; s il existait déjà, il est écrasé! Pour écrire à la suite d un fichier préexistant, on peut utiliser a (pour append ). Expliquons par exemple ce que permet de faire le fichier python suivant : f = open( toto.txt, w ) f.write( Trois petits chats\n ) f.write( Chapeau de paille\n ) f = open( toto.txt, a ) f.write( Paillasson\n ) # Le caractère \n permet le retour à la ligne Après exécution de ces lignes, on ouvre le fichier toto.txt dans un éditeur de textes quelconque : On peut aussi constater la modification en exécutant le script suivant : f = open( toto.txt, r ) print(les_lignes) Ce qui donne dans le shell : Python shell [ Trois petits chats\n, Chapeau de paille\n, Paillasson\n ] 3

3 Un exercice Nous disposons d un fichier texte poeme.txt : On écrit, dans un fichier python (.py) qui se trouve dans le même dossier : f = open( poeme.txt, r ) print(les_lignes) À l exécution, cela donne : Python shell [ Que j aime à faire apprendre un nombre utile aux sages!\n, Glorieux Archimède, artiste, ingénieur,\n, Toi de qui Syracuse aime encore la gloire,\n, Soit ton nom conservé par de savants grimoires!\n ] 1 ) Que faut-il écrire pour arriver à l affichage suivant? Que j aime à faire apprendre un nombre utile aux sages! Glorieux Archimède, artiste, ingénieur, Toi de qui Syracuse aime encore la gloire Soit ton nom conservé par de savants grimoires! Remarque : 4

2 ) Ajouter le vers Jadis, mystérieux, un problème bloquait dans notre poème. Le fichier poeme.txt est désormais : et, pour stocker toutes les lignes de notre fichier, on effectue à nouveau : f = open( poeme.txt, r ) 3 ) Stocker dans la variable ligne la deuxième ligne du poème, à savoir Glorieux Archimède, artiste, ingénieur,\n Rappeler la commande qui permet d obtenir la liste de chaînes de caractères suivante : [ Glorieux, Archimède,, artiste,, ingénieur, ] 4 ) On souhaite, à partir du poème, créer une liste dont les éléments sont les nombres de lettres de chaque mot. Si un mot a 10 lettres alors, on remplacera 10 par 0. On prendra garde à ne pas compter les éléments de ponctuation présents (s ils le sont, ils sont en fin de mot). 5

Remarque : Cela donne, après exécution : [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8] Qu en pensez-vous? 4 A retenir Ouverture d un fichier : f = open( mon_fichier.txt, option) avec options : r (lecture), w (écriture), a (ajout) Fermeture d un fichier : permet de stocker toutes les lignes du fichier dans une liste (sous forme de chaînes de caractères). Si la variable ligne contient un certain les_lignes[i] alors ligne.split() permet de «casser» la ligne. ligne.strip() permet de supprimer les espaces, les sauts de ligne ou tabulations ( \n et \t ) en début et en fin de ligne. 6