La bibliothèque standard
************************

Alors que La référence du langage Python décrit exactement la syntaxe
et la sémantique du langage Python, ce manuel de référence de la
Bibliothèque décrit la bibliothèque standard distribuée avec Python.
Il décrit aussi certains composants optionnels typiquement inclus dans
les distributions de Python.

La bibliothèque standard de Python est très grande, elle offre un
large éventail d'outils comme le montre la longueur de la table des
matières ci-dessous. La bibliothèque contient des modules natifs
(écrits en C) exposant les fonctionnalités du système telles que les
interactions avec les fichiers qui autrement ne seraient pas
accessibles aux développeurs Python, ainsi que des modules écrits en
Python exposant des solutions standardisées à de nombreux problèmes du
quotidien du développeur. Certains de ces modules sont définis
explicitement pour encourager et améliorer la portabilité des
programmes Python en abstrayant des spécificités sous-jacentes en API
neutres.

Les installateurs de Python pour Windows incluent généralement la
bibliothèque standard en entier, et y ajoutent souvent d'autres
composants. Pour les systèmes d'exploitation Unix, Python est
typiquement fourni sous forme d'une collection de paquets, il peut
donc être nécessaire d'utiliser le gestionnaire de paquets fourni par
le système d'exploitation pour obtenir certains composants optionnels.

Au delà de la bibliothèque standard, il existe une collection
grandissante de plusieurs milliers de composants (des programmes, des
modules, ou des *frameworks*), disponibles dans le Python Package
Index.

* 1. Introduction

* 2. Fonctions natives

* 3. Constantes natives

  * 3.1. Constantes ajoutées par le module "site"

* 4. Types natifs

  * 4.1. Valeurs booléennes

  * 4.2. Opérations booléennes --- "and", "or", "not"

  * 4.3. Comparaisons

  * 4.4. Types numériques — "int", "float", "complex"

  * 4.5. Les types itérateurs

  * 4.6. Types séquentiels — "list", "tuple", "range"

  * 4.7. Type Séquence de Texte — "str"

  * 4.8. Séquences Binaires --- "bytes", "bytearray", "memoryview"

  * 4.9. Types d'ensembles — "set", "frozenset"

  * 4.10. Les types de correspondances — "dict"

  * 4.11. Le type gestionnaire de contexte

  * 4.12. Autres types natifs

  * 4.13. Attributs spéciaux

* 5. Exceptions natives

  * 5.1. Classes de base

  * 5.2. Exceptions concrètes

  * 5.3. Avertissements

  * 5.4. Hiérarchie des exceptions

* 6. Services de Manipulation de Texte

  * 6.1. "string" — Opérations usuelles sur des chaînes

  * 6.2. "re" — Opérations à base d'expressions rationnelles

  * 6.3. "difflib" — Utilitaires pour le calcul des deltas

  * 6.4. "textwrap" --- Encapsulation et remplissage de texte

  * 6.5. "unicodedata" — Base de données Unicode

  * 6.6. "stringprep" — Préparation des chaines de caractères internet

  * 6.7. "readline" — interface pour GNU *readline*

  * 6.8. "rlcompleter" — Fonction de complétion pour *GNU readline*

* 7. Services autour des Données Binaires

  * 7.1. "struct" — manipulation de données agrégées sous forme
    binaire comme une séquence d'octets

  * 7.2. "codecs" — Registre des codecs et classes de base associées

* 8. Types de données

  * 8.1. "datetime" — Types de base pour la date et l'heure

  * 8.2. "calendar" — Fonctions calendaires générales

  * 8.3. "collections" — Types de données de conteneurs

  * 8.4. "collections.abc" --- Classes de base abstraites pour les
    conteneurs

  * 8.5. "heapq" — File de priorité basée sur un tas

  * 8.6. "bisect" — Algorithme de bissection de listes

  * 8.7. "array" — Tableaux efficaces de valeurs numériques

  * 8.8. "weakref" --- Weak references

  * 8.9. "types" --- Dynamic type creation and names for built-in
    types

  * 8.10. "copy" — Opérations de copie superficielle et récursive

  * 8.11. "pprint" — L’affichage élégant de données

  * 8.12. "reprlib" --- Alternate "repr()" implementation

  * 8.13. "enum" — Énumerations

* 9. Modules numériques et mathématiques

  * 9.1. "numbers" — Classes de base abstraites numériques

  * 9.2. Fonctions mathématiques — "math"

  * 9.3. Fonctions mathématiques pour nombres complexes — "cmath"

  * 9.4. "decimal" — Arithmétique décimale en virgule fixe et
    flottante

  * 9.5. "fractions" — Nombres rationnels

  * 9.6. "random" --- Génère des nombres pseudo-aléatoires

  * 9.7. "statistics" — Fonctions mathématiques pour les statistiques

* 10. Modules de programmation fonctionnelle

  * 10.1. "itertools" — Fonctions créant des itérateurs pour boucler
    efficacement

  * 10.2. "functools" --- Fonctions de haut niveau et opérations sur
    des objets appelables

  * 10.3. "operator" — Opérateurs standards en tant que fonctions

* 11. Accès aux Fichiers et aux Dossiers

  * 11.1. "pathlib" — Chemins de système de fichiers orientés objet

  * 11.2. "os.path" — manipulation courante des chemins

  * 11.3. "fileinput" --- Iterate over lines from multiple input
    streams

  * 11.4. "stat" --- Interpreting "stat()" results

  * 11.5. "filecmp" – Comparaisons de fichiers et de répertoires

  * 11.6. "tempfile" — Génération de fichiers et répertoires
    temporaires

  * 11.7. "glob" --- Recherche de chemins de style Unix selon certains
    motifs

  * 11.8. "fnmatch" — Filtrage par motif des noms de fichiers Unix

  * 11.9. "linecache" — Accès direct aux lignes d'un texte

  * 11.10. "shutil" --- Opérations de haut niveau sur les fichiers

  * 11.11. "macpath" — Fonctions de manipulation de chemins pour Mac
    OS 9

* 12. Persistance des données

  * 12.1. "pickle" --- Module de sérialisation d'objets Python

  * 12.2. "copyreg" — Enregistre les fonctions support de "pickle"

  * 12.3. "shelve" — Objet Python persistant

  * 12.4. "marshal" — Sérialisation interne des objets Python

  * 12.5. "dbm" --- Interfaces to Unix "databases"

  * 12.6. "sqlite3" — Interface DB-API 2.0 pour bases de données
    SQLite

* 13. Compression de donnée et archivage

  * 13.1. "zlib" — Compression compatible avec **gzip**

  * 13.2. "gzip" — Support pour les fichiers **gzip**

  * 13.3. "bz2" — Prise en charge de la compression **bzip2**

  * 13.4. "lzma" — Compression via l'algorithme LZMA

  * 13.5. "zipfile" — Travailler avec des archives ZIP

  * 13.6. "tarfile" — Lecture et écriture de fichiers d'archives
    **tar**

* 14. Formats de fichiers

  * 14.1. "csv" — Lecture et écriture de fichiers CSV

  * 14.2. "configparser" — Lecture et écriture de fichiers de
    configuration

  * 14.3. "netrc" — traitement de fichier *netrc*

  * 14.4. "xdrlib" --- Encode and decode XDR data

  * 14.5. "plistlib" --- Generate and parse Mac OS X ".plist" files

* 15. Service de cryptographie

  * 15.1. "hashlib" --- Algorithmes de hachage sécurisés et synthèse
    de messages

  * 15.2. "hmac" — Authentification de messages par hachage en
    combinaison avec une clé secrète

  * 15.3. "secrets" — Générer des nombres aléatoires de façon
    sécurisée pour la gestion des secrets

* 16. Services génériques du système d'exploitation

  * 16.1. "os" — Diverses interfaces pour le système d'exploitation

  * 16.2. "io" --- Core tools for working with streams

  * 16.3. "time" — Accès au temps et conversions

  * 16.4. "argparse" -- Parseur d'arguments, d'options, et de sous-
    commandes de ligne de commande

  * 16.5. "getopt" – Analyseur de style C pour les options de ligne de
    commande

  * 16.6. "logging" — Fonctionnalités de journalisation pour Python

  * 16.7. "logging.config" --- Logging configuration

  * 16.8. "logging.handlers" — Gestionnaires de journalisation

  * 16.9. Saisie de mot de passe portable

  * 16.10. "curses" --- Terminal handling for character-cell displays

  * 16.11. "curses.textpad" --- Text input widget for curses programs

  * 16.12. "curses.ascii" --- Utilities for ASCII characters

  * 16.13. "curses.panel" --- A panel stack extension for curses

  * 16.14. "platform" — Accès aux données sous-jacentes de la
    plateforme

  * 16.15. "errno" — Symboles du système *errno* standard

  * 16.16. "ctypes" — Bibliothèque Python d'appels à des fonctions
    externes

* 17. Exécution concourante

  * 17.1. "threading" — Parallélisme basé sur les fils d’exécution
    (*threads*)

  * 17.2. "multiprocessing" — Parallélisme par processus

  * 17.3. Le paquet "concurrent"

  * 17.4. "concurrent.futures" --- Launching parallel tasks

  * 17.5. "subprocess" — Gestion de sous-processus

  * 17.6. "sched" --- Event scheduler

  * 17.7. "queue" — File synchronisée

  * 17.8. "dummy_threading" --- Module de substitution au module
    "threading"

  * 17.9. "_thread" — API bas niveau de gestion de fils d'exécution

  * 17.10. "_dummy_thread" --- Module de substitution pour le module
    "_thread"

* 18. Communication et réseau entre processus

  * 18.1. "socket" — Gestion réseau de bas niveau

  * 18.2. "ssl" — Emballage TLS/SSL pour les objets connecteurs

  * 18.3. "select" --- Waiting for I/O completion

  * 18.4. "selectors" --- High-level I/O multiplexing

  * 18.5. "asyncio" — Entrées/Sorties asynchrone, boucle d’évènements,
    coroutines et tâches

  * 18.6. "asyncore" — Gestionnaire de socket asynchrone

  * 18.7. "asynchat" --- Gestionnaire d'interfaces de connexion
    (*socket*) commande/réponse asynchrones

  * 18.8. "signal" --- Set handlers for asynchronous events

  * 18.9. "mmap" --- Memory-mapped file support

* 19. Traitement des données provenant d'Internet

  * 19.1. "email" — Un paquet de gestion des e-mails et MIME

  * 19.2. "json" — Encodage et décodage JSON

  * 19.3. "mailcap" — Manipulation de fichiers Mailcap

  * 19.4. "mailbox" — Manipuler les boîtes de courriels dans
    différents formats

  * 19.5. "mimetypes" --- Map filenames to MIME types

  * 19.6. "base64" — Encodages base16, base32, base64 et base85

  * 19.7. "binhex" — Encode et décode les fichiers *binhex4*

  * 19.8. "binascii" --- Conversion entre binaire et ASCII

  * 19.9. "quopri" — Encode et décode des données *MIME quoted-
    printable*

  * 19.10. "uu" — Encode et décode les fichiers *uuencode*

* 20. Outils de traitement de balises structurées

  * 20.1. "html" — Support du HyperText Markup Language

  * 20.2. "html.parser" --- Simple HTML and XHTML parser

  * 20.3. "html.entities" — Définitions des entités HTML générales

  * 20.4. Modules de traitement XML

  * 20.5. "xml.etree.ElementTree" --- The ElementTree XML API

  * 20.6. "xml.dom" — L'API Document Object Model

  * 20.7. "xml.dom.minidom" --- Minimal DOM implementation

  * 20.8. "xml.dom.pulldom" --- Support for building partial DOM trees

  * 20.9. "xml.sax" — Prise en charge des analyseurs SAX2

  * 20.10. "xml.sax.handler" --- Base classes for SAX handlers

  * 20.11. "xml.sax.saxutils" — Utilitaires SAX

  * 20.12. "xml.sax.xmlreader" --- Interface for XML parsers

  * 20.13. "xml.parsers.expat" --- Fast XML parsing using Expat

* 21. Gestion des protocoles internet

  * 21.1. "webbrowser" --- Convenient Web-browser controller

  * 21.2. "cgi" --- Common Gateway Interface support

  * 21.3. "cgitb" — Gestionnaire d'exceptions pour les scripts CGI

  * 21.4. "wsgiref" — Outils et implémentation de référence de WSGI

  * 21.5. "urllib" — Modules de gestion des URLs

  * 21.6. "urllib.request" --- Extensible library for opening URLs

  * 21.7. "urllib.response" --- Response classes used by urllib

  * 21.8. "urllib.parse" --- Parse URLs into components

  * 21.9. "urllib.error" --- Classes d'exceptions levées par
    *urllib.request*

  * 21.10. "urllib.robotparser" — Analyseur de fichiers *robots.txt*

  * 21.11. "http" — modules HTTP

  * 21.12. "http.client" --- HTTP protocol client

  * 21.13. "ftplib" --- FTP protocol client

  * 21.14. "poplib" --- POP3 protocol client

  * 21.15. "imaplib" --- IMAP4 protocol client

  * 21.16. "nntplib" --- NNTP protocol client

  * 21.17. "smtplib" --- SMTP protocol client

  * 21.18. "smtpd" --- SMTP Server

  * 21.19. "telnetlib" --- Telnet client

  * 21.20. "uuid" — Objets UUID d'après la **RFC 4122**

  * 21.21. "socketserver" --- A framework for network servers

  * 21.22. "http.server" --- HTTP servers

  * 21.23. "http.cookies" — gestion d'état pour HTTP

  * 21.24. "http.cookiejar" --- Cookie handling for HTTP clients

  * 21.25. "xmlrpc" — Modules Serveur et Client XMLRPC

  * 21.26. "xmlrpc.client" --- XML-RPC client access

  * 21.27. "xmlrpc.server" --- Basic XML-RPC servers

  * 21.28. "ipaddress" --- IPv4/IPv6 manipulation library

* 22. Services multimédia

  * 22.1. "audioloop" — Manipulation de données audio brutes

  * 22.2. "aifc" — Lis et écrit dans les fichiers AIFF et AIFC

  * 22.3. "sunau" --- Read and write Sun AU files

  * 22.4. "wave" --- Lecture et écriture des fichiers WAV

  * 22.5. "chunk" --- Read IFF chunked data

  * 22.6. "colorsys" — Conversions entre les systèmes de couleurs

  * 22.7. "imghdr" --- Determine the type of an image

  * 22.8. "sndhdr" — Détermine le type d'un fichier audio

  * 22.9. "ossaudiodev" --- Access to OSS-compatible audio devices

* 23. Internationalisation

  * 23.1. "gettext" — Services d'internationalisation multilingue

  * 23.2. "locale" --- Services d'internationalisation

* 24. *Frameworks* d'applications

  * 24.1. "turtle" — Tortue graphique

  * 24.2. "cmd" — Interpréteurs en ligne de commande.

  * 24.3. "shlex" --- Simple lexical analysis

* 25. Interfaces Utilisateur Graphiques avec Tk

  * 25.1. "tkinter" — Interface Python pour Tcl/Tk

  * 25.2. "tkinter.ttk" --- Tk themed widgets

  * 25.3. "tkinter.tix" --- Extension widgets for Tk

  * 25.4. "tkinter.scrolledtext" — Gadget texte avec barre de
    défilement

  * 25.5. *IDLE*

  * 25.6. Autres paquets d'interface graphique utilisateur

* 26. Outils de développement

  * 26.1. "typing" — Prise en charge des annotations de type

  * 26.2. "pydoc" — Générateur de documentation et système d’aide en
    ligne

  * 26.3. "doctest" --- Test interactive Python examples

  * 26.4. "unittest" — *Framework* de tests unitaires

  * 26.5. "unittest.mock" — Bibliothèque d'objets simulacres

  * 26.6. "unittest.mock" --- getting started

  * 26.7. *2to3* — Traduction automatique de code en Python 2 vers
    Python 3

  * 26.8. "test" --- Regression tests package for Python

  * 26.9. "test.support" --- Utilities for the Python test suite

* 27. Débogueur et instrumentation

  * 27.1. "bdb" — Framework de débogage

  * 27.2. "faulthandler" --- Dump the Python traceback

  * 27.3. "pdb" — Le débogueur Python

  * 27.4. The Python Profilers

  * 27.5. "timeit" — Mesurer le temps d'exécution de fragments de code

  * 27.6. "trace" --- Trace or track Python statement execution

  * 27.7. "tracemalloc" --- Trace memory allocations

* 28. Paquets et distribution de paquets logiciels

  * 28.1. "distutils" — Création et installation des modules Python

  * 28.2. "ensurepip" --- Bootstrapping the "pip" installer

  * 28.3. "venv" — Création d'environnements virtuels

  * 28.4. "zipapp" --- Manage executable python zip archives

* 29. Environnement d'exécution Python

  * 29.1. "sys" — Paramètres et fonctions propres à des systèmes

  * 29.2. "sysconfig" --- Provide access to Python's configuration
    information

  * 29.3. "builtins" — Objets natifs

  * 29.4. "__main__" — Point d'entrée des scripts

  * 29.5. "warnings" --- Contrôle des alertes

  * 29.6. "contextlib" --- Utilities for "with"-statement contexts

  * 29.7. "abc" — Classes de Base Abstraites

  * 29.8. "atexit" — Gestionnaire de fin de programme

  * 29.9. "traceback" --- Print or retrieve a stack traceback

  * 29.10. "__future__" — Définitions des futurs

  * 29.11. "gc" --- Garbage Collector interface

  * 29.12. "inspect" --- Inspect live objects

  * 29.13. "site" --- Site-specific configuration hook

  * 29.14. "fpectl" --- Floating point exception control

* 30. Interpréteurs Python personnalisés

  * 30.1. "code" --- Interpreter base classes

  * 30.2. "codeop" — Compilation de code Python

* 31. Importer des modules

  * 31.1. "zipimport" — Importer des modules à partir d'archives Zip

  * 31.2. "pkgutil" --- Package extension utility

  * 31.3. "modulefinder" — Identifie les modules utilisés par un
    script

  * 31.4. "runpy" --- Locating and executing Python modules

  * 31.5. "importlib" --- The implementation of "import"

* 32. Services du Langage Python

  * 32.1. "parser" — Accès aux arbres syntaxiques

  * 32.2. "ast" — Arbres Syntaxiques Abstraits

  * 32.3. "symtable" --- Access to the compiler's symbol tables

  * 32.4. "symbol" — Constantes utilisées dans les Arbres Syntaxiques

  * 32.5. "token" --- Constantes utilisées avec les arbres d'analyse
    Python (*parse trees*)

  * 32.6. "keyword" — Tester si des chaînes sont des mot-clés Python

  * 32.7. "tokenize" — Analyseur lexical de Python

  * 32.8. "tabnanny" — Détection d'indentation ambiguë

  * 32.9. "pyclbr" --- Python class browser support

  * 32.10. "py_compile" — Compilation de sources Python

  * 32.11. "compileall" — Génération du code intermédiaire des
    bibliothèques Python

  * 32.12. "dis" – Désassembleur pour le code intermédiaire de Python

  * 32.13. "pickletools" --- Tools for pickle developers

* 33. Services divers

  * 33.1. "formatter" --- Generic output formatting

* 34. Services spécifiques à MS Windows

  * 34.1. "msilib" --- Read and write Microsoft Installer files

  * 34.2. "msvcrt" --- Useful routines from the MS VC++ runtime

  * 34.3. "winreg" --- Windows registry access

  * 34.4. "winsound" --- Sound-playing interface for Windows

* 35. Services spécifiques à Unix

  * 35.1. "posix" — Les appels système POSIX les plus courants

  * 35.2. "pwd" --- The password database

  * 35.3. "spwd" — La base de données de mots de passe *shadow*

  * 35.4. "grp" --- The group database

  * 35.5. "crypt" --- Function to check Unix passwords

  * 35.6. "termios" — Le style POSIX le contrôle TTY

  * 35.7. "tty" — Fonctions de gestion du terminal

  * 35.8. "pty" — Outils de manipulation de pseudo-terminaux

  * 35.9. "fcntl" --- The "fcntl" and "ioctl" system calls

  * 35.10. "pipes" — Interface au *pipelines* shell

  * 35.11. "resource" --- Resource usage information

  * 35.12. "nis" — Interface à Sun's NIS (pages jaunes)

  * 35.13. "syslog" --- Unix syslog library routines

* 36. Modules remplacés

  * 36.1. "optparse" --- Parser for command line options

  * 36.2. "imp" --- Access the *import* internals

* 37. Modules non Documentés

  * 37.1. Modules spécifiques à une plateforme
