Page personelle de Simonpca

Informatique / Snippets Python

« Retour à Informatique

Vous trouverez sur cette page quelques bouts de code Python que je trouve très utilse pour différentes tâches. Pour que la coloration syntaxique fonctionne, votre navigateur doit posséder JavaScript. S'il ne le supporte pas, vous verrez le code dans des zones de texte, ce qui a pour avantage de conserver l'indentation du code. Les nouveautés sont en bas de la page.

  1. Marcher dans des répertoires à la recherche d'un fichier
  2. Lire et écrire des fichiers CSV avec Python

Marcher dans des répertoires à la recherche d'un fichier

C'est très simple, il suffit d'utiliser la fonction walk du module os, inclu avec Python. Je l'ai utilisé dans un programme pour trouver l'exécutable Opera.exe, et ainsi obtenir automatiquement le répertoire d'installation d'Opera. Cette méthode, non récursive, a l'avantage d'être très simple à comprendre et à utiliser, bien qu'elle ne soit sûrement pas la plus rapide.

Lire et écrire des fichiers CSV avec Python

Python, dans sa version 2.4 supporte de facto le format CSV.

La Library Reference est certes très explicative à ce sujet, mais uniquement en anglais.

Prérequis

Rien de bien sorcier...

Écriture dans un fichier CSV

Commencons par importer le module csv.

Nous alons définir un objet writer (ici nommé c) qui pourra être par la suite utilisé pour écrire dans le fichier CSV.

Maintenant, on va lui appliquer la méthode writerow pour écrire une rangée. La méthode writerow prend un argument: cet argument doit être une liste et chaque élément de la liste équivault à une colonne. Ici, on essaiera de faire un carnet d'adresses.

Puis, on stocke chaque entrée de cette façon.

Lecture d'un fichier CSV

Ce n'est pas bien plus sorcier!

On crée tout d'abord un objet reader (que nous nommerons ici cr).

Et là, on obtient chaque rangée (sous forme d'une liste des colonnes) comme ceci:

On peut bien entendu extraire une entrée précise d'une rangée avec son index (comme pour une liste; car en fait c'est une liste).

Et voilà! Qui a dit que c'était compliqué?

Valid XHTML 1.0 Transitional

Creative Commons License
Cette création est mise à disposition sous un contrat Creative Commons by-nc-sa par Simon Plante (simonpca).

Site Meter RSS