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

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

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

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

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

* はじめに

  * 利用可能性について

* 組み込み関数

* 組み込み定数

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

* 組み込み型

  * 真理値判定

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

  * 比較

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

  * イテレータ型

  * シーケンス型 --- "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" --- Functionality to operate with graph-like structures

* 数値と数学モジュール

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

  * "math" --- 数学関数

  * "cmath" --- 複素数のための数学関数

  * "decimal" --- 十進固定及び浮動小数点数の算術演算

  * "fractions" --- 有理数

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

  * "statistics" --- 数理統計関数

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

  * "itertools" --- 効率的なループ実行のためのイテレータ生成関数

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

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

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

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

  * "os.path" --- 共通のパス名操作

  * "fileinput" --- 複数の入力ストリームをまたいだ行の繰り返し処理をサ
    ポートする

  * "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" --- 設定ファイルのパーサー

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

  * "plistlib" --- Apple ".plist" ファイルの生成と解析

* 暗号関連のサービス

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

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

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

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

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

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

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

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

  * "getopt" --- C 言語スタイルのコマンドラインオプションパーサ

  * "logging" --- Python 用ロギング機能

  * "logging.config" --- ロギングの環境設定

  * "logging.handlers" --- ロギングハンドラ

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

  * "curses" --- 文字セル表示を扱うための端末操作

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

  * "curses.ascii" --- ASCII 文字に関するユーティリティ

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

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

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

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

* 並行実行

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

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

  * "multiprocessing.shared_memory" --- Shared memory for direct
    access across processes

  * "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 データの符号化

  * "binhex" --- binhex4 形式ファイルのエンコードおよびデコード

  * "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" --- 文書オブジェクトモデル (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" --- Drag and drop support

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

  * "tkinter.tix" --- Tkの拡張ウィジェット

  * IDLE

* 開発ツール

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

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

  * Python 開発モード

  * Effects of the Python Development Mode

  * ResourceWarning Example

  * Bad file descriptor error example

  * "doctest" --- 対話的な実行例をテストする

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

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

  * "unittest.mock" --- 入門

  * 2to3 --- Python 2 から 3 への自動コード変換

  * "test" --- 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 tracebackのダンプ

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

  * Python プロファイラ

  * "timeit" --- 小さなコード断片の実行時間計測

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

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

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

  * "distutils" --- Python モジュールの構築とインストール

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

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

  * "zipapp" --- 実行可能な Python zip 書庫を管理する

* Python ランタイムサービス

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

  * "sysconfig" --- Python の構成情報にアクセスする

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

  * "__main__" --- トップレベルのスクリプト環境

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

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

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

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

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

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

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

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

  * "inspect" --- 活動中のオブジェクトの情報を取得する

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

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

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

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

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

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

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

  * "modulefinder" --- スクリプト中で使われているモジュールを検索する

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

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

  * "importlib.metadata" を使う

* 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 ライブラリルーチン群

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

  * "aifc" --- AIFFおよびAIFCファイルの読み書き

  * "asynchat" --- 非同期ソケットコマンド/レスポンスハンドラ

  * "asyncore" --- 非同期ソケットハンドラ

  * "audioop" --- 生の音声データを操作する

  * "cgi" --- CGI (ゲートウェイインターフェース規格) のサポート

  * "cgitb" --- CGI スクリプトのトレースバック管理機構

  * "chunk" --- IFFチャンクデータの読み込み

  * "crypt" --- Unix パスワードをチェックするための関数

  * "imghdr" --- 画像の形式を決定する

  * "imp" --- *import* 内部へのアクセス

  * "mailcap" --- mailcap ファイルの操作

  * "msilib" --- Microsoft インストーラーファイルの読み書き

  * "nis" --- Sun の NIS (Yellow Pages) へのインターフェース

  * "nntplib" --- NNTP プロトコルクライアント

  * "optparse" --- コマンドラインオプション解析器

  * "ossaudiodev" --- OSS互換オーディオデバイスへのアクセス

  * "pipes" --- シェルパイプラインへのインターフェース

  * "smtpd" --- SMTP サーバー

  * "sndhdr" --- サウンドファイルの識別

  * "spwd" --- シャドウパスワードデータベース

  * "sunau" --- Sun AUファイルの読み書き

  * "telnetlib" --- Telnet クライアント

  * "uu" --- uuencode形式のエンコードとデコード

  * "xdrlib" --- XDR データのエンコードおよびデコード

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