Présentation
Introduction
La bibliothèque standard de Python rassemble des modules et des packages fournis avec Python pour répondre à de nombreux besoins courants : manipuler des fichiers, réaliser des calculs, traiter des dates, échanger des données et écrire des tests.
Nous parlons généralement de la bibliothèque standard, au singulier. Elle contient plusieurs modules et packages, comme math, datetime et urllib. Leur utilisation ne nécessite normalement pas d'installation avec pip. Certains composants peuvent cependant être optionnels ou dépendre du système et de la distribution Python.
Contrairement aux fonctions natives telles que print() et len(), les fonctionnalités présentées ici doivent généralement être importées.
Ce chapitre propose une sélection des principaux modules et de leurs fonctions, classes et méthodes courantes. Il s'appuie sur la documentation Python 3.14 ; les exemples évitent les nouveautés propres à cette version. Ce n'est pas un catalogue exhaustif de la bibliothèque.
Conventions des exemples C#
Chaque module conserve sa présentation, ses tableaux et son exemple Python, puis reçoit un parallèle C#/.NET. Les équivalences sont fonctionnelles : elles ne promettent pas des contrats identiques.
Les exemples visent C# 12 / .NET 8 ou ultérieur. Chaque bloc est indépendant ; ne les concaténons pas dans un même fichier, car les noms sont réutilisés. Les instructions de haut niveau s’exécutent dans une application console. Le bloc MSTest exige un projet de tests.
Selon le bloc, ajoutons les espaces de noms nécessaires :
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net.Http;
using System.Numerics;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
Les chemins relatifs sont résolus à partir du répertoire de travail. Les blocs qui écrivent des fichiers utilisent un dossier d’exemple. Les appels HTTP nécessitent un accès réseau. Le séparateur décimal affiché peut dépendre de la culture .NET ; les formats d’échange emploient InvariantCulture lorsque nécessaire.
Bibliothèque .NET et packages complémentaires
Un namespace n’est ni un module Python ni nécessairement une dépendance à installer. using rend un nom accessible à la compilation ; il n’installe pas de package et ne charge pas un module avec les mêmes règles que import.
| Besoin | Statut du parallèle présenté |
|---|---|
| Fichiers, JSON, HTTP, expressions régulières, cryptographie, tâches | API fournies par .NET 8. |
| CSV | TextFieldParser, fourni par .NET et utilisable depuis C# ; API plus limitée que le module Python. |
| SQLite | Package NuGet Microsoft.Data.Sqlite requis. |
| Tests MSTest | Projet et dépendances de tests requis. |
| Configuration TOML | Pas de lecteur TOML dans la bibliothèque de base .NET 8 ; alternative JSON montrée. |
| Arguments de commande | Parseur limité montré sans package ; System.CommandLine pour une API spécialisée. |
| Journaux applicatifs | Diagnostic Trace montré ; Microsoft.Extensions.Logging demande une configuration et des références adaptées au projet. |
Choisir un module
| Besoin | Point de départ |
|---|---|
| Fichiers et chemins | pathlib |
| Copie et déplacement | shutil |
| Données JSON ou CSV | json, csv |
| Dates et fuseaux | datetime, zoneinfo |
| Mathématiques et statistiques | math, statistics |
| Montants et arrondis décimaux | decimal |
| Recherche de motifs | re |
| Modèles de données | dataclasses, enum |
| Configuration d'un programme | os, argparse, tomllib |
| Journaux et tests | logging, unittest |
| Processus externes | subprocess |
| Concurrence | concurrent.futures, asyncio |
Les packages NumPy, pandas, requests, httpx, pytest et les SDK Azure sont des bibliothèques tierces. Ils complètent la bibliothèque standard et nécessitent une installation distincte.
Importer les fonctionnalités nécessaires
Importer un module
Le nom du module précède celui de la fonction :
Importer un élément
Nous pouvons importer directement une fonction ou une classe :
Définir un alias
Évitons les importations avec * : elles rendent l'origine des noms moins visible et peuvent provoquer des collisions. Évitons également de nommer un fichier personnel json.py ou random.py, car il pourrait masquer le module standard correspondant.
Parallèle des importations en C#
using System;
using System.IO;
using DT = System.DateTime;
Console.WriteLine(Math.Sqrt(81));
Console.WriteLine(Path.Combine("documents", "rapport.txt"));
Console.WriteLine(new DT(2026, 10, 15).ToString("yyyy-MM-dd"));
L’alias porte ici sur un type. using static System.Math; permettrait d’appeler directement Sqrt(), mais son effet reste une résolution de noms à la compilation.