Table des matières
Préface ............................................xiii
1. Texte ........................................... 1
1.1 Traiter une chaîne caractère par caractère 7
1.2 Convertir des caractères en leurs codes numériques et réciproquement 8
1.3 Tester si un objet est assimilé à une chaîne 9
1.4 Aligner des chaînes 11
1.5 Supprimer les espaces aux extrémités d’une chaîne 11
1.6 Combiner des chaînes 12
1.7 Inverser une chaîne par mots ou par caractères 15
1.8 Tester si une chaîne contient certains caractères 16
1.9 Simplifier l’utilisation de la méthode translate des chaînes 19
1.10 Filtrer une chaîne par rapport à un ensemble de caractères 22
1.11 Tester si une chaîne contient du texte ou du binaire 25
1.12 Contrôler la casse 26
1.13 Accéder à des sous-chaînes 28
1.14 Modifier l’indentation d’une chaîne de plusieurs lignes 31
1.15 Convertir les tabulations 32
1.16 Interpréter des variables dans une chaîne 35
1.17 Interpréter des variables dans des chaînes avec Python 2.4 36
1.18 Remplacer plusieurs motifs en une seule passe 38
1.19 Tester si une chaîne a plusieurs fins possibles 41
1.20 Gérer du texte international avec Unicode 43
1.21 Convertir des chaînes Unicode en chaînes normales
et réciproquement 45
1.22 Afficher des caractères Unicode sur la sortie standard 47
1.23 Encoder des données Unicode pour XML et HTML 49
1.24 Rendre des chaînes insensibles à la casse 51
1.25 Convertir des documents HTML en texte sur un terminal Unix 55
2. Fichiers ....................................... 59
2.1 Lire un fichier 63
2.2 Écrire dans un fichier 67
2.3 Rechercher et remplacer du texte dans un fichier 68
2.4 Lire une ligne spécifique dans un fichier 69
2.5 Compter les lignes d’un fichier 70
2.6 Traiter tous les mots d’un fichier 73
2.7 Utiliser des entrées/sorties à accès direct 75
2.8 Modifier un fichier à accès direct 76
2.9 Lire des données contenues dans un fichier zip 78
2.10 Gérer un fichier zip dans une chaîne 79
2.11 Archiver une arborescence de fichiers
dans une archive tar compressée 81
2.12 Envoyer des données binaires sur la sortie standard de Windows 82
2.13 Utiliser une syntaxe comme celle de iostream en C++ 83
2.14 Revenir au début d’un fichier d’entrée 85
2.15 Adapter un objet apparenté à un fichier à un véritable objet fichier 88
2.16 Parcourir des arborescences de répertoires 89
2.17 Remplacer une extension de fichier par une autre dans toute une
arborescence de répertoires 90
2.18 Trouver un fichier dans un chemin donné 92
2.19 Chercher dans un chemin les fichiers font les noms correspondent
à un certain motif 93
2.20 Rechercher un fichier dans le chemin de recherche de Python 94
2.21 Modifier dynamiquement le chemin de recherche de Python 95
2.22 Calculer le chemin relatif d’un répertoire par rapport à un autre 96
2.23 Lire un caractère non tamponné de façon portable 98
2.24 Compter les pages d’un document PDF sur Mac OS X 100
2.25 Modifier les attributs de fichiers sur Windows 101
2.26 Extraire du texte d’un document OpenOffice.org 102
2.27 Extraire le texte d’un document Word de Microsoft 103
2.28 Verrouiller un fichier avec une API portable 104
2.29 Ajouter des numéros de versions à des noms de fichiers 106
2.30 Calculer une somme de contrôle CRC-64 108
3. Temps et argent ............................... 111
3.1 Calculer les dates d’hier et de demain 117
vi Table des matières
3.2 Trouver le vendredi précédent 119
3.3 Calculer l’écart séparant deux dates 120
3.4 Totaliser des durées de chansons 121
3.5 Calculer le nombre de jours de travail entre deux dates 123
3.6 Rechercher automatiquement les jours fériés 125
3.7 Analyser des dates de manière floue 128
3.8 Vérifier si l’heure d’été est active 129
3.9 Convertir des fuseaux horaires 130
3.10 Lancer plusieurs fois une commande 132
3.11 Planifier des commandes 133
3.12 Utiliser l’arithmétique décimale 135
3.13 Formater des décimaux comme des valeurs monétaires 137
3.14 Utiliser Python comme une simple calculatrice 140
3.15 Vérifier la somme de contrôle d’une carte bancaire 143
3.16 Surveiller les taux de changes monétaires 144
4. Raccourcis Python ............................ 147
4.1 Copier un objet 149
4.2 Construire des listes avec des listes en intension 152
4.3 Renvoyer un élément d’une liste s’il existe 154
4.4 Boucler sur les éléments et les indices d’une séquence 155
4.5 Créer des listes de listes sans partager les références 156
4.6 Aplatir une séquence imbriquée 158
4.7 Supprimer ou réordonner des colonnes dans une liste de lignes 160
4.8 Transposer des tableaux à deux dimensions 162
4.9 Obtenir une valeur dans un dictionnaire 164
4.10 Ajouter une entrée à un dictionnaire 165
4.11 Construire un dictionnaire sans mettre les clés entre apostrophes 167
4.12 Construire un dictionnaire à partir d’une liste de clés
et de valeurs alternées 168
4.13 Extraire un sous-ensemble d’un dictionnaire 170
4.14 Inverser un dictionnaire 172
4.15 Associer plusieurs valeurs à une clé de dictionnaire 173
4.16 Utiliser un dictionnaire pour lancer des méthodes ou des fonctions 175
4.17 Trouver l’union et l’intersection de deux dictionnaires 176
4.18 Rassembler plusieurs éléments nommés 179
4.19 Affecter et tester en une seule instruction 181
4.20 Utiliser printf avec Python 183
Table des matières vii
4.21 Choisir aléatoirement des éléments avec des probabilités données 184
4.22 Gérer les exceptions dans une expression 185
4.23 Vérifier qu’un nom est défini dans un module donné 187
5. Programmation orientée objet ................. 191
5.1 Convertir des températures 198
5.2 Définir des constantes 200
5.3 Restreindre l’ajout d’attributs 202
5.4 Chaîner des recherches dans des dictionnaires 204
5.5 Déléguer automatiquement plutôt qu’hériter 206
5.6 Déléguer des méthodes spéciales dans les mandataires 209
5.7 Implémenter des tuples avec des éléments nommés 212
5.8 Éviter les accesseurs passe-partout pour les propriétés 214
5.9 Faire une copie rapide d’un objet 216
5.10 Conserver des références vers des méthodes liées sans empêcher
le travail du ramasse-miettes 218
5.11 Implémenter un tampon circulaire 221
5.12 Tester les changements d’état d’une instance 224
5.13 Vérifier qu’un objet a les attributs nécessaires 228
5.14 Implémenter le motif de conception « État » 231
5.15 Implémenter le motif de conception « Singleton » 233
5.16 Éviter le motif de conception Singleton grâce à l’idiome Borg 235
5.17 Implémenter le motif de conception Objet nul 239
5.18 Initialiser automatiquement les variables d’instances à partir des
paramètres de __init__ 242
5.19 Appeler la méthode __init__ d’une super-classe si elle existe 244
5.20 Utiliser les appels coopératifs aux super-classes
de façon concise et sûre 247
6. Persistance et bases de données ................ 251
6.1 Sérialiser des données avec le module marshal 254
6.2 Sérialiser des données avec les modules pickle et cPickle 256
6.3 Utiliser la compression avec la sérialisation 259
6.4 Utiliser le module cPickle avec des classes et des instances 260
6.5 Sérialiser des objets contenant des méthodes liées 263
6.6 Sérialiser des objets code 265
6.7 Modifier des objets avec shelve 267
6.8 Utiliser des fichiers Berkeley DB 270
viii Table des matières
6.9 Accéder à une base de données MySQL 273
6.10 Stocker un BLOB dans une base de données MySQL 274
6.11 Stocker un BLOB dans une base de données PostgreSQL 275
6.12 Stocker un BLOB dans une base de données SQLite 277
6.13 Créer un dictionnaire associant les noms de colonnes
à leurs numéros 279
6.14 Utiliser dtuple pour accéder simplement aux résultats des requêtes 281
6.15 Afficher proprement le contenu des curseurs de bases de données 283
6.16 Utiliser le même style de passage de paramètres
pour tous les modules de l’API DB 285
6.17 Utiliser Microsoft Jet via ADO 287
6.18 Accéder à une base de données JDBC à partir d’une servlet Jython 289
6.19 Utiliser ODBC pour récupérer des données Excel à partir de Jython 292
7. Débogage et tests .............................. 295
7.1 Empêcher l’exécution de certaines instructions conditionnelles
et de certaines boucles 296
7.2 Mesurer l’utilisation de la mémoire avec Linux 297
7.3 Déboguer le processus de ramasse-miettes 299
7.4 Capturer et enregistrer les exceptions 300
7.5 Tracer les expressions et les commentaires pendant le débogage 302
7.6 Obtenir plus d’informations de la pile des appels 305
7.7 Lancer automatiquement le débogueur après une exception non
capturée 308
7.8 Lancer des tests unitaires le plus simplement possible 309
7.9 Lancer automatiquement des test unitaires 311
7.10 Utiliser doctest avec unittest et Python 2.4 312
7.11 Vérifier que des valeurs appartiennent à des intervalles dans les tests
unitaires 315
8. Traitement de XML ........................... 317
8.1 Vérifier qu’un document XML est bien formé 319
8.2 Compter les balises d’un document 320
8.3 Extraire le texte d’un document XML 321
8.4 Détecter automatiquement l’encodage d’un document XML 323
8.5 Convertir un document XML en arborescence d’objets Python 325
8.6 Supprimer les nœuds textuels ne contenant que des espaces
dans le sous-arbre DOM d’un nœud 327
8.7 Analyser un document XML produit par Microsoft Excel 328
Table des matières ix
1 / 76 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !