Catégories de la bibliothèque standard — Quand utiliser quoi

Obtiens une vue d'ensemble de la bibliothèque standard de Python répartie en 7 catégories. Gestion des dates, calculs numériques, E/S de données, concurrence — découvre quoi importer pour chaque situation.

La bibliothèque standard de Python est l'ensemble de centaines de modules que tu peux utiliser avec un simple import — pas besoin de pip install. Cet article organise le tout en 7 catégories pour que tu voies la disposition d'un coup d'œil.

Ce qu'est la bibliothèque standard — les modules livrés avec Python

La bibliothèque standard est la collection de modules qui fonctionnent dès l'instant où tu installes Python. Des éléments comme math, os et json sont disponibles avec un simple import — tu n'as jamais besoin d'exécuter pip install pour eux.

Bibliothèque standard vs bibliothèque tierce
PythonnoyauBibliothèque standardmath / json / os…Bibliothèque tiercepandas / requests…intégréepip install
La bibliothèque standard est livrée avec Python lui-même, donc aucune installation supplémentaire n'est nécessaire. Les bibliothèques tierces demandent un pip install séparé.
TypeInstallationExemples
Bibliothèque standardLivrée avec Python (sans installation)math / os / sys / json / datetime / re / asyncio
Bibliothèque tierceÀ ajouter via pip installpandas / numpy / requests / fastapi

Il existe des situations où la bibliothèque standard ne suffit pas, mais essayer la version standard d'abord paie généralement à long terme. Voici pourquoi.

  • Pas d'installation supplémentaire, donc ça tourne partout — serveurs internes, CI, conteneurs Docker, et même le runtime navigateur que cette série utilise
  • La gestion des versions est facile — une fois que tu fixes la version de Python, la version de la bibliothèque standard est aussi fixée automatiquement
  • Éprouvée et stable — la bibliothèque standard évolue tout en gardant une compatibilité descendante stricte, donc le code que tu as écrit il y a des années fonctionne encore

Les 7 catégories par cas d'usage

La bibliothèque standard contient des centaines de modules, mais les regrouper en 7 catégories par objectif rend bien plus facile de savoir où chercher. Cette série suit le même ordre, parcourant chaque catégorie une par une de haut en bas.

Les 7 catégories de la bibliothèque standard
BibliothèquestandardA Runtime& fichiersB Nombres / datesaléatoireC Chaînes& texteD DonnéesE / SE Structures de donnéesétenduesF Gestion desressourcesG Concurrence& parallélisme
Le nœud central bibliothèque standard se divise en 7 catégories par objectif. Cette série couvre les 7 dans l'ordre, de A à G. La catégorie G a une couleur différente à cause des limitations du runtime navigateur (couvertes dans la section suivante).
CatégorieModules représentatifsCe que tu peux faire
A Runtime et fichierssys / os / pathlib / shutilInspecter le runtime, manipuler fichiers et dossiers
B Nombres, dates, aléatoiremath / statistics / decimal / datetime / randomCalculs numériques, calculs monétaires à faible erreur, arithmétique de dates, génération de nombres aléatoires
C Chaînes et textere / string / textwrap / pprintExtraction par regex, substitution de templates, retour à la ligne, affichage formaté
D E/S de donnéesjson / csv / pickle / base64 / hashlibConvertir des objets vers et depuis du texte ou des flux d'octets
E Structures de données étenduescollections / itertools / functools / dataclassesAu-delà des simples list et dict — des structures de données plus riches
F Gestion des ressourcescontextlib / loggingConstruire tes propres blocs with et émettre des logs pour du code exploitable
G Concurrence et parallélismeasyncio / threading / multiprocessingFaire tourner du travail en parallèle

Chaque catégorie liste plusieurs modules parce que l'objectif est le même mais l'angle est différent. Par exemple, dans la catégorie B, random et secrets génèrent tous deux des nombres aléatoires, mais random est pour les jeux et les données de test, tandis que secrets retourne des nombres aléatoires solides adaptés aux cas de sécurité comme les jetons de réinitialisation de mot de passe. Cette série traverse chaque catégorie et trie ces modules similaires-mais-différents pour que tu saches lequel attraper.

Comment écrire import — conventions qui évitent les collisions de noms

Il existe plusieurs façons d'écrire import quand tu fais appel à la bibliothèque standard (couvert en détail dans l'article précédent). Chacune a ses avantages et ses pièges, donc tu choisis selon la situation. Voici les quatre formes courantes.

FormeExemple d'appelQuand l'utiliser
import mathmath.sqrt(2)Le défaut. Quiconque lit le code peut voir d'où vient la fonction
import json as JJ.dumps(data)Quand tu veux un alias court à l'intérieur d'un seul fichier (idem pour les conventions comme np / pd)
from datetime import datetimedatetime(2024, 1, 1)Quand tu n'utilises qu'un ou deux noms du module
from os import *getcwd()À éviter en règle générale. C'est un nid à collisions de noms

La forme import math montre d'où vient chaque nom au point d'appel, donc tu ne te perds pas en relisant le code plus tard. À l'inverse, la forme from package import function supprime le préfixe du nom du module (la partie attachée avant le nom de la fonction, comme le math. dans math.sqrt), ce qui te laisse écrire des choses compactes comme datetime(2024, 1, 1).

Évite from x import * en règle générale

Écrire from os import * pour tirer chaque nom peut écraser silencieusement des fonctions du même nom définies ailleurs. Par exemple, os.open() et le open() intégré sont des choses différentes, mais écrire from os import * remplace l'open intégré par os.open et casse la lecture et l'écriture de fichiers. Évite-le aussi bien pour tes propres modules que pour ceux de la bibliothèque standard — c'est le geste sûr.

Bibliothèques standard qui ne tournent pas dans le navigateur — comment cette série les gère

Les exercices de cette série tournent sur un runtime Python basé navigateur (MicroPython ou Pyodide). La majorité de la bibliothèque standard fonctionne très bien, mais tout ce qui a besoin de threads ou processus OS ne peut tout simplement pas être mis en route — le bac à sable du navigateur ne le permet pas. sys.argv (le mécanisme pour recevoir les arguments en ligne de commande) fonctionne aussi sur une vraie machine mais pas dans le navigateur, puisqu'il n'y a aucun moyen de passer des arguments. Pour ceux-là, on couvre les concepts avec des schémas pour que tu puisses les rappeler rapidement quand tu écris le code sur une vraie machine.

Ce qui tourne dans le navigateur, ce qui ne tourne pas
Fonctionnemath / json / redatetime / asyncioLimitéthreading(pas de vrais threads)Ne tourne pasmultiprocessingsubprocessNotre approchepratiqueaxé schémasschéma seulement
Pyodide / MicroPython n'ont pas de processus OS ni de sockets réseau, donc les bibliothèques comme multiprocessing et subprocess qui lancent quelque chose à l'extérieur ne fonctionnent pas. Cette série les couvre avec des schémas seulement.
TraitementModules couvertsRaison
Pratiquemath / re / datetime / json / collections / asyncio et bien d'autresTournent tels quels sur Pyodide / MicroPython
Axé schémas + quizthreading / concurrent.futuresLes vrais threads ne tournent pas dans le navigateur, mais les concepts comptent dans le travail réel
Schéma seulementmultiprocessing / subprocessPas de processus OS signifie pas d'exercices pratiques possibles

Pourquoi on couvre quand même les sujets schéma-seulement

Dans le travail réel, tu finiras par exécuter du code sur un vrai OS à un moment donné. Quand ça arrive, connaître les concepts derrière threading vs multiprocessing ou exécuter une commande via subprocess fait une énorme différence dans la facilité avec laquelle tu peux faire ce premier pas. Cette série ne saute pas les sujets juste parce qu'ils ne tournent pas dans le navigateur — au lieu de ça, on schématise les parties qui ne peuvent pas tourner, pour que tu puisses les rappeler quand tu as réellement besoin d'écrire le code.

QUIZ

Vérification des connaissances

Répondez à chaque question une par une.

Question 1Lequel des éléments suivants décrit correctement la différence entre une bibliothèque standard et une bibliothèque tierce ?

Question 2Laquelle des formes d'import suivantes faut-il généralement éviter ?