Die Python-Standardbibliothek¶
Während Die Python-Sprachreferenz die exakte Syntax und Semantik der Python-Sprache beschreibt, beschreibt dieses Handbuch der Bibliotheksreferenz die Standardbibliothek, die mit Python verteilt wird. Es beschreibt auch einige der optionalen Komponenten, die üblicherweise in Python-Distributionen enthalten sind.
Die Standardbibliothek von Python ist sehr umfangreich und bietet eine breite Palette von Einrichtungen, wie die lange Inhaltsübersicht unten zeigt. Die Bibliothek enthält eingebaute Module (in C geschrieben), die Zugriff auf Systemfunktionalitäten wie Datei-E/A bieten, die sonst für Python-Programmierer unzugänglich wären, sowie in Python geschriebene Module, die standardisierte Lösungen für viele Probleme bieten, die bei der alltäglichen Programmierung auftreten. Einige dieser Module sind explizit darauf ausgelegt, die Portabilität von Python-Programmen zu fördern und zu verbessern, indem plattformspezifische Details in plattformunabhängige APIs abstrahiert werden.
Die Python-Installer für die Windows-Plattform enthalten normalerweise die gesamte Standardbibliothek und oft auch viele zusätzliche Komponenten. Für Unix-ähnliche Betriebssysteme wird Python normalerweise als Sammlung von Paketen bereitgestellt, sodass es notwendig sein kann, die mit dem Betriebssystem bereitgestellten Paketierungswerkzeuge zu verwenden, um einige oder alle optionalen Komponenten zu erhalten.
Zusätzlich zur Standardbibliothek gibt es eine aktive Sammlung von hunderttausenden Komponenten (von einzelnen Programmen und Modulen bis hin zu Paketen und kompletten Anwendungsentwicklungsframeworks), die von der Python Package Index verfügbar sind.
- Introduction
- Eingebaute Funktionen
- Eingebaute Konstanten
- Eingebaute Typen
- Wahrheitswertprüfung
- Boolesche Operationen — `and`, `or`, `not`
- Vergleiche
- Numerische Typen — `int`, `float`, `complex`
- Boolescher Typ — `bool`
- Iteratortypen
- Sequenztypen — `list`, `tuple`, `range`
- Zusammenfassung der Methoden für Text- und Binärsequenztypen
- Text-Sequenztyp — `str`
- Binäre Sequenztypen — `bytes`, `bytearray`, `memoryview`
- Mengentypen — `set`, `frozenset`
- Abbildungstypen — `dict`
- Kontextmanager-Typen
- Typen für Typ-Annotationen — Generischer Alias, Union
- Andere eingebaute Typen
- Spezielle Attribute
- Begrenzung der Ganzzahl-String-Konvertierungslänge
- Eingebaute Ausnahmen
- Textverarbeitungsdienste
- `string` — Allgemeine Zeichenkettenoperationen
- `string.templatelib` — Unterstützung für Vorlagen-Zeichenkettenliterale
- `re` — reguläre Ausdrucksoperationen
- `difflib` — Helfer zur Berechnung von Deltas
- `textwrap` — Textumbruch und -füllung
- `unicodedata` — Unicode-Datenbank
- `stringprep` — Internet-String-Vorbereitung
- `readline` — GNU readline-Schnittstelle
- `rlcompleter` — Vervollständigungsfunktion für GNU readline
- Dienste für binäre Daten
- Datentypen
- `datetime` — Grundlegende Datums- und Zeittypen
- `zoneinfo` — IANA Zeitzonenunterstützung
- `calendar` — Allgemeine kalenderbezogene Funktionen
- `collections` — Container-Datentypen
collections.abc— Abstrakte Basisklassen für Containerheapq— Heap-Warteschlangen-Algorithmusbisect— Array-Bisektionsalgorithmusarray— Effiziente Arrays für numerische Werteweakref— Schwache Referenzentypes— Dynamische Erstellung von Typen und Namen für eingebaute Typencopy— Flache und tiefe Kopieroperationenpprint— Data pretty printerreprlib— Alternativerepr()Implementierungenum— Unterstützung für Aufzählungengraphlib— Funktionalität zur Operation mit graphähnlichen Strukturen
- Numerische und Mathematische Module
numbers— Numerische abstrakte Basisklassenmath— Mathematische Funktionencmath— Mathematische Funktionen für komplexe Zahlendecimal— Dezimalarithmetik mit fester und gleitender Kommastellefractions— Rationale Zahlenrandom— Generieren von Pseudozufallszahlenstatistics— Mathematische Statistikfunktionen
- Funktionale Programmiermodule
- Datei- und Verzeichniszugriff
pathlib— Objektorientierte Dateisystempfadeos.path— Übliche Pfadmanipulationenstat— Interpretieren vonstat()Ergebnissenfilecmp— Datei- und Verzeichnisvergleichetempfile— Generieren temporärer Dateien und Verzeichnisseglob— Unix-Stil-Pfadmustererweiterungfnmatch— Unix-Dateinamen-Mustervergleichlinecache— Zufälliger Zugriff auf Textzeilenshutil— High-level Dateioperationen
- Datenspeicherung
- Datenkompression und Archivierung
- Das Paket
compression compression.zstd— Kompression kompatibel mit dem Zstandard-Formatzlib— Kompression kompatibel mit gzipgzip— Unterstützung für gzip-Dateienbz2— Unterstützung für bzip2-Kompressionlzma— Kompression mit dem LZMA-Algorithmuszipfile— Mit ZIP-Archiven arbeitentarfile— Lese- und Schreibzugriff auf Tar-Archivdateien
- Das Paket
- Dateiformate
- Kryptographische Dienste
- Allgemeine Betriebssystemdienste
os— Verschiedene Betriebssystem-Schnittstellenio— Kernwerkzeuge zur Arbeit mit Streamstime— Zeitzugriff und -umwandlungenlogging— Logging-Einrichtung für Pythonlogging.config— Logging-Konfigurationlogging.handlers— Logging-Handlerplatform— Zugriff auf identifizierende Daten der zugrundeliegenden Plattformerrno— Standard-Symbol für errno-Systemfehlerctypes— Eine Fremdfunktionsbibliothek für Python
- Bibliotheken für die Kommandozeilenschnittstelle
argparse— Parser für Kommandozeilenoptionen, Argumente und Unterbefehleoptparse— Parser für Kommandozeilenoptionengetpass— Portabler Passwort-Eingabefileinput— Zeilen aus mehreren Eingabeströmen iterierencurses— Terminalbehandlung für Zeichenzell-Displayscurses.textpad— Text-Eingabe-Widget für `curses`-Programmecurses.ascii— Hilfsprogramme für ASCII-Zeichencurses.panel— Eine Panel-Stack-Erweiterung für `curses`cmd— Unterstützung für zeilenorientierte Kommandozeileninterpreter
- Konkurrierende Ausführung
threading— Thread-basierte Parallelitätmultiprocessing— Prozessbasierte Parallelitätmultiprocessing.shared_memory— Shared Memory für direkten Zugriff über Prozesse hinweg- Das Paket
concurrent concurrent.futures— Starten paralleler Aufgabenconcurrent.interpreters— Mehrere Interpreter im selben Prozesssubprocess— Prozessverwaltungsched— Ereignisplanerqueue— Eine synchronisierte Warteschlangenklassecontextvars— Kontextvariablen_thread— Low-Level-Threading-API
- Netzwerk- und Interprozesskommunikation
- Internet-Datenhandhabung
email— Ein Paket für die Behandlung von E-Mails und MIMEjson— JSON-Encoder und -Decodermailbox— Bearbeiten von Mailboxen in verschiedenen Formatenmimetypes— Zuordnen von Dateinamen zu MIME-Typenbase64— Base16, Base32, Base64, Base85 Datencodierungenbinascii— Konvertierung zwischen Binärdaten und ASCIIquopri— MIME Quoted-Printable Daten kodieren und dekodieren
- Werkzeuge zur Verarbeitung strukturierter Markup-Sprachen
html— Unterstützung für HyperText Markup Languagehtml.parser— Einfacher HTML- und XHTML-Parserhtml.entities— Definitionen von allgemeinen HTML-Entitäten- XML-Verarbeitungsmodule
xml.etree.ElementTree— Die ElementTree XML-APIxml.dom— Die Document Object Model APIxml.dom.minidom— Minimale DOM-Implementierungxml.dom.pulldom— Unterstützung für den Aufbau partieller DOM-Bäumexml.sax— Unterstützung für SAX2-Parserxml.sax.handler— Basisklassen für SAX-Handlerxml.sax.saxutils— SAX-Hilfsprogrammexml.sax.xmlreader— Schnittstelle für XML-Parserxml.parsers.expat— Schnelles XML-Parsing mit Expat
- Internetprotokolle und Unterstützung
webbrowser— Bequemer Webbrowser-Controllerwsgiref— WSGI-Hilfsprogramme und Referenzimplementierungurllib— URL-Behandlungsmoduleurllib.request— Erweiterbare Bibliothek zum Öffnen von URLsurllib.response— Response-Klassen, die von urllib verwendet werdenurllib.parse— URLs in Komponenten zerlegenurllib.error— Ausnahmeklassen, die von urllib.request ausgelöst werdenurllib.robotparser— Parser für robots.txthttp— HTTP-Modulehttp.client— HTTP-Protokollclientftplib— FTP-Protokollclientpoplib— POP3-Protokollclientimaplib— IMAP4-Protokollclientsmtplib— SMTP-Protokollclientuuid— UUID-Objekte gemäß **RFC 9562**socketserver— Ein Framework für Netzwerksereverhttp.server— HTTP-Serverhttp.cookies— Verwaltung von HTTP-Statushttp.cookiejar— Cookie-Behandlung für HTTP-Clientsxmlrpc— XMLRPC-Server- und Client-Modulexmlrpc.client— XML-RPC-Clientzugriffxmlrpc.server— Einfache XML-RPC-Serveripaddress— Bibliothek für IPv4/IPv6-Manipulation
- Multimedia-Dienste
- Internationalisierung
- Grafische Benutzeroberflächen mit Tk
tkinter— Python-Schnittstelle zu Tcl/Tktkinter.colorchooser— Dialog zur Farbauswahltkinter.font— Tkinter-Schriftart-Wrapper- Tkinter-Dialoge
tkinter.messagebox— Tkinter-Nachrichten-Promptstkinter.scrolledtext— Gescrolltes Text-Widgettkinter.dnd— Drag-and-Drop-Unterstützungtkinter.ttk— Tk-thematisierte Widgets- IDLE — Python-Editor und Shell
turtle— Turtle-Grafiken
- Entwicklungswerkzeuge
typing— Unterstützung für Typ-Hinweisepydoc— Dokumentationsgenerator und Online-Hilfesystem- Python-Entwicklungsmodus
doctest— Tests für interaktive Python-Beispieleunittest— Framework für Unit-Testsunittest.mock— Bibliothek für Mock-Objekteunittest.mock— erste Schrittetest— Paket für Regressionstests für Pythontest.support— Hilfsprogramme für die Python-Testsuitetest.support.socket_helper— Hilfsprogramme für Socket-Teststest.support.script_helper— Hilfsprogramme für Python-Ausführungsteststest.support.bytecode_helper— Unterstützungswerkzeuge für das Testen korrekter Bytecode-Generierungtest.support.threading_helper— Hilfsprogramme für Threading-Teststest.support.os_helper— Hilfsprogramme für OS-Teststest.support.import_helper— Hilfsprogramme für Import-Teststest.support.warnings_helper— Hilfsprogramme für Warnungstests
- Debugging und Profiling
- Audit-Ereignistabelle
bdb— Debugger-Frameworkfaulthandler— Python-Traceback ausgebenpdb— Der Python-Debugger- Die Python-Profiler
timeit— Messen der Ausführungszeit von kleinen Code-Schnipselntrace— Verfolgen der Ausführung von Python-Anweisungentracemalloc— Verfolgen von Speicherallokationen
- Software-Paketierung und -Verteilung
- Python-Laufzeitdienste
sys— Systemspezifische Parameter und Funktionensys.monitoring— Überwachung von Ausführungsereignissensysconfig— Zugriff auf Pythons Konfigurationsinformationenbuiltins— Eingebaute Objekte__main__— Oberstes Code-Umfeldwarnings— Warnungskontrolledataclasses— Datenklassencontextlib— Hilfsprogramme fürwith-Anweisungs-Kontexteabc— Abstrakte Basisklassenatexit— Exit-Handlertraceback— Drucken oder Abrufen eines Stack-Tracebacks__future__— Zukünftige Anweisungsdefinitionengc— Garbage Collector-Schnittstelleinspect— Live-Objekte inspizierenannotationlib— Funktionalität zur Introspektion von Annotationensite— Hook für standortspezifische Konfiguration
- Benutzerdefinierte Python-Interpreter
- Module importieren
zipimport— Module aus Zip-Archiven importierenpkgutil— Dienstprogramm zur Paket-Erweiterungmodulefinder— Finden von Modulen, die von einem Skript verwendet werdenrunpy— Finden und Ausführen von Python-Modulenimportlib— Die Implementierung vonimportimportlib.resources– Lesen, Öffnen und Zugriff auf Paketressourcenimportlib.resources.abc– Abstrakte Basisklassen für Ressourcenimportlib.metadata– Zugriff auf Paketmetadaten- Die Initialisierung des
sys.pathModul-Suchpfads
- Python-Sprachdienste
ast— Abstrakte Syntaxbäumesymtable— Zugriff auf die Symboltabellen des Compilerstoken— Konstanten für Python-Parse-Bäumekeyword— Testen auf Python-Schlüsselwörtertokenize— Tokenizer für Python-Quellcodetabnanny— Erkennung von mehrdeutiger Einrückungpyclbr— Unterstützung für den Python-Modul-Browserpy_compile— Python-Quelldateien kompilierencompileall— Python-Bibliotheken bytekompilierendis— Disassembler für Python-Bytecodepickletools— Werkzeuge für Pickle-Entwickler
- Windows-spezifische Dienste
- Unix-spezifische Dienste
shlex— Einfache lexikalische Analyseposix— Die gebräuchlichsten POSIX-Systemaufrufepwd— Die Passwortdatenbankgrp— Die Gruppendatenbanktermios— POSIX-kompatible TTY-Steuerungtty— Terminalsteuerungsfunktionenpty— Pseudo-Terminal-Dienstprogrammefcntl— Die Systemaufrufefcntlundioctlresource— Informationen zur Ressourcennutzungsyslog— Unix syslog-Bibliotheksroutinen
- Kommandozeilenschnittstelle (CLI) für Module
- Abgelöste Module
- Entfernte Module
- Sicherheitsüberlegungen