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

Python 言語リファレンス ではプログラミング言語 Python の厳密な構文とセ
マンティクスについて説明されていますが、このライブラリリファレンスマニ
ュアルでは Python とともに配付されている標準ライブラリについて説明しま
す。また Python 配布物に収められていることの多いオプションのコンポーネ
ントについても説明します。

Python の標準ライブラリはとても拡張性があり、下の長い目次のリストで判
るように幅広いものを用意しています。このライブラリには、例えばファイル
I/O のように、Python プログラマが直接アクセスできないシステム機能への
アクセス機能を提供する (Cで書かれた) 組み込みモジュールや、日々のプロ
グラミングで生じる多くの問題に標準的な解決策を提供するPython で書かれ
たモジュールが入っています。これら数多くのモジュールには、プラットフォ
ーム固有の事情をプラットフォーム独立な API へと昇華させることにより、
Pythonプログラムに移植性を持たせ、それを高めるという明確な意図がありま
す。

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

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

* はじめに

  * 利用可能性について

* 組み込み関数

* 組み込み定数

  * "site" モジュールで追加される定数

* 組み込み型

  * 真理値判定

  * ブール演算 --- "and", "or", "not"

  * 比較

  * 数値型 "int", "float", "complex"

  * ブーリアン型 - "bool"

  * イテレータ型

  * シーケンス型 --- "list", "tuple", "range"

  * テキストシーケンス型 --- "str"

  * バイナリシーケンス型 --- "bytes", "bytearray", "memoryview"

  * set（集合）型 --- "set", "frozenset"

  * マッピング型 --- "dict"

  * コンテキストマネージャ型

  * 型アノテーション型 --- *ジェネリックエイリアス* 、 *ユニオン*

  * その他の組み込み型

  * 特殊属性

  * 整数と文字列の変換での長さ制限

* 組み込み例外

  * 例外コンテキスト

  * 組み込み例外から継承する

  * 基底クラス

  * 具象例外

  * 警告

  * 例外グループ

  * 例外のクラス階層

* テキスト処理サービス

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

  * "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" --- 数学関数

  * "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 インターフェース

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

  * "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 用の外部関数ライブラリ

* Command Line Interface Libraries

  * "argparse" --- Parser for command-line options, arguments and
    subcommands

  * "optparse" --- Parser for command line options

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

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

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

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

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

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

* 並行実行

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

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

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

  * "concurrent" パッケージ

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

  * "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 4122** に従った 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" --- 国際化サービス

* プログラムのフレームワーク

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

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

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

* Tk を用いたグラフィカルユーザーインターフェース

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

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

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

  * Tkinter ダイアログ

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

  * "tkinter.scrolledtext" --- スクロール可能なテキストウィジェット

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

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

  * IDLE --- Python editor and shell

* 開発ツール

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

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

  * Python 開発モード

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

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

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

  * "unittest.mock" --- 入門

  * "test" --- Regression tests package for Python

  * "test.support" --- テストのためのユーティリティ関数

  * "test.support.socket_helper" --- Utilities for socket tests

  * "test.support.script_helper" --- Utilities for the Python
    execution tests

  * "test.support.bytecode_helper" --- Support tools for testing
    correct bytecode generation

  * "test.support.threading_helper" --- Utilities for threading tests

  * "test.support.os_helper" --- Utilities for os tests

  * "test.support.import_helper" --- Utilities for import tests

  * "test.support.warnings_helper" --- Utilities for warnings tests

* デバッグとプロファイル

  * 監査イベント表

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

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

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

  * Python プロファイラ

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

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

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

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

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

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

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

* Python ランタイムサービス

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

  * "sys.monitoring" --- Execution event monitoring

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

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

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

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

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

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

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

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

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

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

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

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

  * "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 固有のサービス

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

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

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

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

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

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

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

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

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

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

* 取って代わられたモジュール群

  * "getopt" --- C-style parser for command line options

* Removed Modules

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