<?xml version="1.0"?>
<rss xmlns:php="http://php.net/xsl" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Lire et écrire un fichier texte avec Python - Chicoree</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python</link><atom:link href="http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python?action=toFeed" rel="self" type="application/rss+xml"/><description><![CDATA[Une des utilisations de Python est l'écriture de scripts chargés d'automatiser certaines tâches. Traditionnellement, cela implique la lecture d'un fichier, la transformation des données et l'écriture du résultat dans un autre fichier. C'est en fait un travail de filtre selon la terminologie Unix.
C'est le prétexte qui va nous servir ici pour examiner comment lire et écrire dans un fichier texte avec Python.
]]></description><item><title>1 Les fichiers</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Les_fichiers</link><description><![CDATA[<p>On divise habituellement les fichiers en deux catégories: 
</p>]]></description></item><item><title>1.1 Texte ou binaire?</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Texte_ou_binaire.3F</link><description><![CDATA[<p>On divise habituellement les fichiers en deux catégories: 
</p>]]></description></item><item><title>1.2 Ouvrir, manipuler, fermer</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Ouvrir.2C_manipuler.2C_fermer</link><description><![CDATA[<p>Du point de vue du programme qui va s'en servir, un fichier fait parti de ce que l'on peut appeler une <b>ressource</b>. Or, les ressources sont limitées, et d'une manière ou d'une autre, l'accès à ces ressources doit être partagé entre les différents programmes qui peuvent en avoir besoin.
</p>]]></description></item><item><title>2 Un exemple concret</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Un_exemple_concret</link><description><![CDATA[<p>Passées ces généralités, nous allons nous atteler à un exemple concret. Un utilisateur télécharge des fichiers au format <span>CSV<span> (</span><span><i>Comma-separated values</i><span>) </span></span></span> (qui est un format <i>texte</i>). Ces fichiers contiennent des cotations boursières dont voici un extrait:
</p>]]></description></item><item><title>2.1 Lire dans un fichier</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Lire_dans_un_fichier</link><description><![CDATA[<p>Pour lire dans un fichier, Python offre plusieurs possibilités:
</p>]]></description></item><item><title>2.2 Traitement de l'en-tête</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Traitement_de_l.27en-t.C3.AAte</link><description><![CDATA[<p>Notre traitement est minime, puisqu'il consiste à extraire certaines données. Un peu de manipulation de chaînes avec la méthode <tt>str.split</tt> notamment devrait faire l'affaire. La seule pseudo-complexité va être de déterminer quelles colonnes nous intéressent. Ici encore, Python nous simplifie la vie grâce à la méthode <tt>list.index</tt>:
</p>]]></description></item><item><title>2.3 Ecrire dans un fichier</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Ecrire_dans_un_fichier</link><description><![CDATA[<p>Muni de tous les index nécessaires, il devient facile d'écrire le résultat souhaité. Surtout quand je vous aurai dit qu'on peut écrire avec la méthode <tt>file.write</tt>. Au final, la fonction <tt>filtrer</tt> devient:
</p>]]></description></item><item><title>3 Un poil de robustesse en plus</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#Un_poil_de_robustesse_en_plus</link><description><![CDATA[<p>Avant de terminer, nous allons faire une dernière modification. Celle-ci n'est pas vraiment indispensable dans un script utilitaire comme ici. Mais est plus que recommandé sur des programmes plus ambitieux. Alors, autant prendre de bonnes habitudes. De quoi puis-je bien parler? Et bien, du fait qu'il peut y avoir un problème à un moment ou un autre de l'exécution du programme: le disque peut être plein, ou alors le fichier source est sur un disque réseau devenu brusquement inaccessible. Ou simplement le traitement est trop long, et l'utilisateur a pressé contrôle-c. Tous ces cas entraînent l'arrêt brusque du programme. Sans passer par la case <tt>close</tt> sensée fermer <i>proprement</i> les fichiers.
</p>]]></description></item><item><title>4 Références</title><link>http://www.chicoree.fr/w/Lire_et_%C3%A9crire_un_fichier_texte_avec_Python#R.C3.A9f.C3.A9rences</link><description/></item></channel></rss>
