Python 標準ライブラリ
*********************

このライブラリリファレンスマニュアルは、Python に付属する標準ライブラ
リについて説明します。 Python の配布物に含まれることが多い、オプション
のコンポーネントの一部も説明します。

別の文書である Python 言語リファレンス では Python 言語の正確な構文と
意味を、Python 組み込み機能リファレンス では組み込み関数を説明していま
す。

Python の標準ライブラリは大規模で、以下の長い目次が示すとおり、幅広い
機能を提供します。 ライブラリには、ファイル入出力など、そのままでは
Python プログラマが利用できないシステム機能へのアクセスを提供する (C
で書かれた) 組み込みモジュールがあります。 また、日々のプログラミング
で生じる多くの問題に標準的な解決方法を提供する、Python で書かれたモジ
ュールもあります。 一部のモジュールは、プラットフォーム固有の機能をプ
ラットフォームに依存しない API に抽象化し、Python プログラムの移植性を
高めることを明確な目的として設計されています。

Windows 向けの Python インストーラはたいてい標準ライブラリのすべてを含
み、しばしばそれ以外の追加のコンポーネントも含んでいます。Unix 系のオ
ペレーティングシステムの場合は Python は一揃いのパッケージとして提供さ
れるのが普通で、オプションのコンポーネントを手に入れるにはオペレーティ
ングシステムのパッケージツールを使うことになるでしょう。

標準ライブラリに加えて、数10万のコンポーネントが (独立したプログラムや
モジュールからパッケージ、アプリケーション開発フレームワークまで) 活動
しているコレクションとしてPython Package Index から入手可能です。

* はじめに

  * 利用可能性について

* テキスト処理サービス

  * "string" --- 一般的な文字列操作

  * "string.templatelib" --- テンプレート文字列リテラルのサポート

  * "re" --- 正規表現操作

  * "difflib" --- 差分の計算の補助

  * "textwrap" --- テキストの折り返しと詰め込み

  * "unicodedata" --- Unicode データベース

  * "stringprep" --- インターネットの文字列調製

  * "readline" --- GNU readline のインターフェース

  * "rlcompleter" --- GNU readline の補完機能

* バイナリデータ処理

  * "struct" --- バイト列をパックされたバイナリデータとして解釈する

  * "codecs" --- codec レジストリと基底クラス

* データ型

  * "datetime" --- 基本的な日付と時間の型

  * "zoneinfo" --- IANA タイムゾーンのサポート

  * "calendar" --- 一般的なカレンダーに関係する機能群

  * "collections" --- コンテナデータ型

  * "collections.abc" --- コンテナの抽象基底クラス

  * "heapq" --- ヒープキューアルゴリズム

  * "bisect" --- 配列二分法アルゴリズム

  * "array" --- 効率的な数値配列

  * "weakref" --- 弱参照

  * "types" --- 動的な型生成と組み込み型の名前

  * "copy" --- 浅いコピーおよび深いコピー操作

  * "pprint" --- データの整形表示

  * "reprlib" --- もう一つの "repr()" の実装

  * "enum" --- 列挙型のサポート

  * "graphlib" --- グラフ構造を操作する機能

* 数値と数学モジュール

  * "numbers" --- 数の抽象基底クラス

  * "math" --- 数学関数

  * "math.integer" --- 整数専用の数学関数

  * "cmath" --- 複素数用の数学関数

  * "decimal" --- 10進固定小数点と浮動小数点の演算

  * "fractions" --- 有理数

  * "random" --- 疑似乱数を生成する

  * "statistics" --- 数学的統計関数

* 関数型プログラミング用モジュール

  * "itertools" --- 効率的なループ用のイテレータ生成関数群

  * "functools" --- 高階関数と呼び出し可能オブジェクトの操作

  * "operator" --- 関数形式の標準演算子

* ファイルとディレクトリへのアクセス

  * "pathlib" --- オブジェクト指向のファイルシステムパス

  * "os.path" --- 一般的なパス名操作

  * "stat" --- "stat()" の結果を解釈する

  * "filecmp" --- ファイルとディレクトリの比較

  * "tempfile" --- 一時ファイルやディレクトリの作成

  * "glob" --- Unix 形式のパス名のパターン展開

  * "fnmatch" --- Unix のファイル名パターンマッチ

  * "linecache" --- テキストラインへのランダムアクセス

  * "shutil" --- 高水準のファイル操作

* データの永続化

  * "pickle" --- Python オブジェクトの直列化

  * "copyreg" --- "pickle" サポート関数を登録する

  * "shelve" --- Python オブジェクトの永続化

  * "marshal" --- 内部使用向けの Python オブジェクト直列化

  * "dbm" --- Unix "データベース" へのインターフェース

  * "sqlite3" --- SQLite データベース用の DB-API 2.0 インターフェース

* データ圧縮とアーカイブ

  * "compression" パッケージ

  * "compression.zstd" --- Zstandard 形式に対応した圧縮

  * "zlib" --- **gzip** 互換の圧縮

  * "gzip" --- **gzip** ファイルのサポート

  * "bz2" --- **bzip2** 圧縮のサポート

  * "lzma" --- LZMA アルゴリズムを使用した圧縮

  * "zipfile" --- ZIP アーカイブの処理

  * "tarfile" --- tar アーカイブファイルの読み書き

* ファイルフォーマット

  * "csv" --- CSV ファイルの読み書き

  * "configparser" --- 設定ファイルのパーサー

  * "tomllib" --- TOML ファイルの解析

  * "netrc" --- netrc ファイルの処理

  * "plistlib" --- Apple ".plist" ファイルを生成・解析する

* 暗号関連のサービス

  * "hashlib" --- セキュアハッシュとメッセージダイジェスト

  * "hmac" --- メッセージ認証のための鍵付きハッシュ化

  * "secrets" --- 機密を扱うために安全な乱数を生成する

* 汎用オペレーティングシステムサービス

  * "os" --- 雑多なオペレーティングシステムインターフェース

  * "io" --- ストリームを扱うコアツール

  * "time" --- 時刻データへのアクセスと変換

  * "logging" --- Python 用のログ記録手段

  * "logging.config" --- ログ記録の環境設定

  * "logging.handlers" --- ログ記録ハンドラー

  * "platform" ---  実行中プラットフォームの固有情報を参照する

  * "errno" --- 標準の errno システムシンボル

  * "ctypes" --- Python 用の外部関数ライブラリ

* コマンドラインインターフェースライブラリ

  * "argparse" --- コマンドラインオプションや引数、サブコマンド向けの
    パーサー

  * "optparse" --- コマンドラインオプションのパーサー

  * "getpass" --- 可搬性のあるパスワード入力機構

  * "fileinput" --- 複数の入力ストリームをまたいだ行を反復する

  * "curses" --- 文字セル表示のターミナル処理

  * "curses.textpad" --- curses プログラム用のテキスト入力ウィジェット

  * "curses.ascii" --- ASCII 文字のユーティリティー

  * "curses.panel" --- curses のためのパネルスタック拡張

  * "cmd" --- 行指向のコマンドインタープリターのサポート

* 並行実行

  * "threading" --- スレッドベースの並列処理

  * "multiprocessing" --- プロセスベースの並列処理

  * "multiprocessing.shared_memory" --- プロセス間で直接アクセス可能な
    共有メモリ

  * "concurrent" パッケージ

  * "concurrent.futures" --- 並列タスク実行

  * "concurrent.interpreters" --- 同じプロセス内の複数のインタープリタ

  * "subprocess" --- サブプロセス管理

  * "sched" --- イベントスケジューラー

  * "queue" --- 同期キュークラス

  * "contextvars" --- コンテキスト変数

  * "_thread" --- 低水準なスレッド API

* ネットワーク通信とプロセス間通信

  * "asyncio" --- 非同期 I/O

  * "socket" --- 低水準ネットワークインターフェース

  * "ssl" --- ソケットオブジェクト用の TLS/SSL ラッパー

  * "select" --- I/O 完了の待機

  * "selectors" --- 高水準の I/O 多重化

  * "signal" --- 非同期イベントにハンドラーを設定する

  * "mmap" --- メモリマップファイルのサポート

* インターネット上のデータの操作

  * "email" --- 電子メールと MIME 処理のためのパッケージ

  * "json" --- JSON エンコーダーとデコーダー

  * "mailbox" --- 様々な形式のメールボックスを操作する

  * "mimetypes" --- ファイル名を MIME タイプへマップする

  * "base64" --- Base16, Base32, Base64, Base85 データのエンコード

  * "binascii" --- バイナリ と ASCII 間の変換

  * "quopri" --- MIME quoted-printable データのエンコードとデコード

* 構造化マークアップツール

  * "html" --- HyperText Markup Language のサポート

  * "html.parser" --- HTML と XHTML のシンプルなパーサー

  * "html.entities" --- HTML 一般実体の定義

  * XMLを扱うモジュール群

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

  * "xml.dom" --- ドキュメントオブジェクトモデル API

  * "xml.dom.minidom" --- 最小限の DOM の実装

  * "xml.dom.pulldom" --- 部分的な DOM ツリー構築のサポート

  * "xml.sax" --- SAX2 パーサーのサポート

  * "xml.sax.handler" --- SAX ハンドラーの基底クラス

  * "xml.sax.saxutils" --- SAX ユーティリティー

  * "xml.sax.xmlreader" --- XML パーサーのインターフェース

  * "xml.parsers.expat" --- Expat を使用した高速な XML 解析

* インターネットプロトコルとサポート

  * "webbrowser" --- 便利なウェブブラウザコントローラー

  * "wsgiref" --- WSGI ユーティリティとリファレンス実装

  * "urllib" --- URL を扱うモジュール群

  * "urllib.request" --- URL を開くための拡張可能なライブラリ

  * "urllib.response" --- urllib が使うレスポンスクラス

  * "urllib.parse" --- URL を構成要素に解析する

  * "urllib.error" --- urllib.request によって送出される例外クラス

  * "urllib.robotparser" ---  robots.txt 用のパーサー

  * "http" --- HTTP モジュール群

  * "http.client" --- HTTP プロトコルクライアント

  * "ftplib" --- FTP プロトコルクライアント

  * "poplib" --- POP3 プロトコルクライアント

  * "imaplib" --- IMAP4 プロトコルクライアント

  * "smtplib" --- SMTP プロトコルクライアント

  * "uuid" --- **RFC 9562** に基づく UUID オブジェクト

  * "socketserver" --- ネットワークサーバーのフレームワーク

  * "http.server" --- HTTP サーバー

  * "http.cookies" --- HTTP の状態管理

  * "http.cookiejar" --- HTTP クライアント用の Cookie 処理

  * "xmlrpc" --- XMLRPC サーバーとクライアントモジュール群

  * "xmlrpc.client" --- XML-RPC クライアントアクセス

  * "xmlrpc.server" --- 基本的な XML-RPC サーバー

  * "ipaddress" --- IPv4/IPv6 操作ライブラリ

* マルチメディアサービス

  * "wave" --- WAV ファイルの読み書き

  * "colorsys" --- 色体系間の変換

* 国際化

  * "gettext" --- 多言語国際化サービス

  * "locale" --- 国際化サービス

* Tk によるグラフィカルユーザーインターフェース

  * "tkinter" --- Tcl/Tk の Python インターフェース

  * "tkinter.colorchooser" --- カラー選択ダイアログ

  * "tkinter.font" --- Tkinter フォントラッパー

  * Tkinter のダイアログ

  * "tkinter.messagebox" --- Tkinter メッセージプロンプト

  * "tkinter.scrolledtext" --- スクロール付きテキストウィジェット

  * "tkinter.dnd" --- ドラッグアンドドロップのサポート

  * "tkinter.ttk" --- Tk のテーマ付きウィジェット

  * IDLE --- Python のエディタとシェル

  * "turtle" --- タートルグラフィックス

* 開発ツール

  * "typing" --- 型ヒントのサポート

  * "pydoc" --- ドキュメント生成とオンラインヘルプシステム

  * Python 開発モード

  * "doctest" --- 対話型の Python の例をテストする

  * "unittest" --- ユニットテストフレームワーク

  * "unittest.mock" --- モックオブジェクトライブラリ

  * "unittest.mock" --- 入門

  * "test" --- Python の回帰テストパッケージ

  * "test.support" --- Python テストスイート用のユーティリティ

  * "test.support.socket_helper" --- ソケットのテスト用ユーティリティ

  * "test.support.script_helper" --- Python の実行テスト用ユーティリテ
    ィ

  * "test.support.bytecode_helper" --- 正しいバイトコード生成をテスト
    するための支援ツール

  * "test.support.threading_helper" --- スレッドのテスト用ユーティリテ
    ィ

  * "test.support.os_helper" --- os のテスト用ユーティリティ

  * "test.support.import_helper" --- インポートのテスト用ユーティリテ
    ィ

  * "test.support.warnings_helper" --- 警告のテスト用ユーティリティ

* デバッグとプロファイリング

  * 監査イベント表

  * "bdb" --- デバッガーフレームワーク

  * "faulthandler" --- Python トレースバックをダンプする

  * "pdb" --- Python デバッガ

  * "profiling" --- Python のプロファイラ

  * "pstats" --- プロファイラの統計

  * "timeit" --- 小さなコードスニペットの実行時間計測

  * "trace" --- Python 文実行のトレースと追跡

  * "tracemalloc" --- メモリ割り当ての追跡

* ソフトウェア・パッケージと配布

  * "ensurepip" --- "pip" インストーラーのブートストラップ

  * "venv" --- 仮想環境の作成

  * "zipapp" --- 実行可能な Python zip アーカイブを管理する

* Python ランタイムサービス

  * "sys" --- システム固有のパラメーターと関数

  * "sys.monitoring" --- 実行イベントモニタリング

  * "sysconfig" --- Python の構成情報へのアクセスを提供する

  * "builtins" --- 組み込みオブジェクト

  * "__main__" --- トップレベルのコード環境

  * "warnings" --- 警告の制御

  * "dataclasses" --- データクラス

  * "contextlib" --- "with" 文コンテキスト用ユーティリティ

  * "abc" --- 抽象基底クラス

  * "atexit" --- 終了ハンドラー

  * "traceback" --- スタックトレースの表示または取得

  * "__future__" --- future 文の定義

  * "gc" --- ガベージコレクターインターフェース

  * "inspect" --- 活動中のオブジェクトを調査する

  * "annotationlib" --- アノテーションを調べるための機能

  * "site" --- サイト固有の設定フック

* カスタム Python インタプリタ

  * "code" --- インタープリター基底クラス

  * "codeop" --- Python コードをコンパイルする

* モジュールのインポート

  * "zipimport" --- Zip アーカイブからモジュールをインポートする

  * "pkgutil" --- パッケージ拡張ユーティリティ

  * "modulefinder" --- スクリプト中で使用されているモジュールの検索

  * "runpy" --- Python モジュールの位置特定と実行

  * "importlib" --- "import" の実装

  * "importlib.resources" -- パッケージリソースの読み取り、オープン、
    アクセス

  * "importlib.resources.abc" -- リソースの抽象基底クラス

  * "importlib.metadata" -- パッケージメタデータへのアクセス

  * "sys.path" モジュール検索パスの初期化

* Python言語サービス

  * "ast" --- 抽象構文木

  * "symtable" --- コンパイラーの記号表へのアクセス

  * "token" --- Python 解析木で使われる定数

  * "keyword" --- Python キーワードのテスト

  * "tokenize" --- Python ソース用のトークナイザー

  * "tabnanny" --- あいまいなインデントの検出

  * "pyclbr" --- Python モジュールブラウザーサポート

  * "py_compile" --- Python ソースファイルをコンパイルする

  * "compileall" --- Python ライブラリをバイトコンパイルする

  * "dis" --- Python バイトコードの逆アセンブラー

  * "pickletools" --- pickle 開発者用のツール群

* MS Windows 固有のサービス

  * "msvcrt" --- MS VC++ ランタイムの有用なルーチン群

  * "winreg" --- Windows レジストリへのアクセス

  * "winsound" --- Windows 用の音声再生インターフェース

* Unix 固有のサービス

  * "shlex" --- 単純な字句解析

  * "posix" --- 最も一般的な POSIX システムコール群

  * "pwd" --- パスワードデータベース

  * "grp" --- グループデータベース

  * "termios" --- POSIX スタイルの端末制御

  * "tty" --- 端末制御用の関数群

  * "pty" --- 擬似端末ユーティリティ

  * "fcntl" --- "fcntl" および "ioctl" システムコール

  * "resource" --- リソース使用情報

  * "syslog" --- Unix syslog ライブラリルーチン群

* モジュールのコマンドラインインターフェース (CLI)

* 他のモジュールに置き換えられたモジュール

  * "getopt" --- C 形式のコマンドラインオプション解析

  * "profile" --- 純粋な Python によるプロファイラ

* 削除されたモジュール

* セキュリティで考慮すべき点
