Aller au contenu

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 :

import math

print(math.sqrt(81))  # 9.0

Importer un élément

Nous pouvons importer directement une fonction ou une classe :

from pathlib import Path

print(Path("documents") / "rapport.txt")

Définir un alias

import datetime as dt

print(dt.date(2026, 10, 15))  # 2026-10-15

É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.