Python 標準ライブラリまとめ — 17 本を 7 カテゴリで俯瞰

標準ライブラリ17本を7カテゴリで俯瞰し、urllib→requests・csv→pandas・math→NumPy・unittest→pytestなど外部ライブラリへ乗り換える判断軸を整理する総まとめ記事です。

標準ライブラリ 17 本の全体像

Python 標準ライブラリは、追加インストールなしで使える組み込みのモジュール群です。本シリーズでは17 本の主要モジュールを扱いました。実行環境からの情報取り出しから始まり、抽象度を上げながら数値・文字列・データ入出力・データ構造・運用・並行処理へと積み上げていく構成です。

標準ライブラリの 7 カテゴリ
並行・並列処理asyncio / threadingmultiprocessingリソース管理・運用contextlibloggingデータ構造の拡張collections / itertoolsdataclassesデータ入出力json / csvpickle / hashlib実行環境とファイルsys / argparseos / pathlib数値・日時・乱数datetime / mathrandom / secrets文字列・テキストre / stringtextwrap / pprint
標準ライブラリを7 カテゴリに整理。下から積み上げていく構成で、土台に実行環境・数値・文字列、中段にデータ入出力・データ構造、上段に運用と並行処理が積み重なる。

カテゴリごとの記事

各カテゴリで扱った記事と、解決する代表的な問題は次の通りです。

カテゴリ扱った記事解決する代表的な問題
実行環境とファイルsys-argparse / os-pathlib / shutil-tempfileコマンドライン引数、パス操作、ファイル一括操作
数値・日時・乱数datetime-time / math-statistics / decimal-fractions / random-secrets日付計算、誤差なき金額計算、乱数とトークン生成
文字列・テキストre / string-textwrap / pprint正規表現、テンプレ置換、整形表示
データ入出力json-csv / pickle-base64 / hashlib構造化データ、シリアライズ、エンコード、ハッシュ
データ構造の拡張collections / itertools-functools / enum-dataclasses集計、組み合わせ、関数加工、名前付き定数、データクラス
リソース管理・運用contextlib / loggingwith の自作、ログ出力
並行・並列処理asyncio-basics / asyncio-tasks / threading-multiprocessing並行実行、並列計算、外部コマンド呼び出し

外部ライブラリとは

外部ライブラリは、Python に最初から付属していない、pip install ライブラリ名で追加インストールするライブラリです。標準ライブラリよりも特定の用途に特化していて、Web フレームワーク・データ分析・機械学習など、コミュニティや企業が公開しています。

標準ライブラリと外部ライブラリ
標準ライブラリ(json / csv / re など)Python に同梱import で即使える外部ライブラリ(pandas / requests など)pip install で追加import で使える
標準ライブラリは Python に同梱されていて import するだけで使える。外部ライブラリは pip install で追加してから import して使う、特定用途に特化したパッケージ

標準ライブラリと外部ライブラリの関係

標準ライブラリは最初の選択肢ですが、規模が大きくなると外部ライブラリのほうが扱いやすい領域があります。標準ライブラリで概念を押さえてから外部に進むと、設計思想が共通しているため学習コストが下がります (pandas は csv の延長、requests は urllib.request の使いやすい版、pytest は unittest の改良版)。

標準ライブラリから外部ライブラリへの主な流れ
標準urllib.request外部requests / httpx標準csv / collections外部pandas / polars標準math / statistics外部NumPy / SciPy標準unittest外部pytest
規模が大きくなったときに乗り換えやすい主要 4 系統。左の標準ライブラリで基礎を押さえ、右の外部ライブラリに進む。

用途別の代表的な外部ライブラリ

標準ライブラリで土台を作ったら、目的に合った外部ライブラリを取り込んでいきます。やりたいことごとに定番の外部ライブラリが決まっているので、まず代表的なものを 1 つ使ってみるのが効率的です。

用途別の代表的な外部ライブラリ
Web 開発FastAPI / DjangoFlaskデータ分析pandas / NumPymatplotlib機械学習scikit-learnPyTorch / TensorFlowHTTP 通信requests / httpxテストpytest
やりたいことごとに定番の外部ライブラリがある。Web 開発・データ分析・機械学習・HTTP 通信・テストの 5 分野を見渡せる。
QUIZ

理解度チェック

まずは1問ずつ答えてみましょう。

Q1ファイルダウンロード後の整合性確認に使う標準ライブラリはどれですか?

Q2「リストの要素ごとに出現回数を数える」のに最も簡潔なのはどれですか?

Q3標準ライブラリの csv で扱える範囲を超えて、本格的なデータ分析を行うときに使う代表的な外部ライブラリはどれですか?