Pythonを学び始めたとき、こんな経験はありませんか?
「この処理をやりたいけど、ライブラリを入れたほうがいいのかな?」
「便利そうな外部パッケージが多すぎて、どれを使えばいいか分からない…」
実はその悩み、Pythonの標準ライブラリを十分に知らないことが原因になっているケースがとても多いんです。 Pythonには「Batteries Included(電池付属)」という有名な考え方があり、最初から驚くほど多機能な標準ライブラリが用意されています。
ファイル操作、JSONやCSVの読み書き、データベース、並列処理、HTTP通信、ログ管理、テスト…。
「え、それ外部ライブラリじゃないの?」と思うような処理も、実は標準ライブラリだけで完結することが少なくありません。
特に初心者のうちは、
・標準でできることを知らずに外部ライブラリを追加してしまう
・依存関係が増えて環境構築でつまずく
・あとから「これ標準でよかったのでは?」と気づく
といった遠回りをしがちです。
この記事では、そんな回り道を減らすために、
「Python初心者が、標準ライブラリだけでどこまで戦えるのか」を分野別のマップとして整理しました。 すべてを暗記する必要はありません。
大切なのは、「どんな選択肢が用意されているか」を頭の片隅に置いておくことです。
これからPythonでスクリプトを書きたい人、業務の自動化をしたい人、依存関係を増やしたくない人にとって、
この記事が「まず標準を疑ってみる」ための地図になればうれしいです 😊
論点・問題提起:その処理、本当に外部ライブラリが必要ですか?
Pythonで開発をしていると、ちょっと検索しただけで
「この処理には◯◯ライブラリが便利!」
「△△を入れれば一発で解決!」
といった情報がたくさん見つかります。
もちろん、外部ライブラリはとても強力ですし、Pythonの大きな魅力のひとつでもあります。 ただし問題なのは、「標準ライブラリで既にできることまで、無意識に外部ライブラリに頼ってしまう」ケースが多いことです。
特に初心者のうちは、
- 標準ライブラリに何が含まれているのか分からない
- 検索結果の上位に出てきた方法をそのまま採用してしまう
- 「とりあえず動けばOK」で依存関係を増やしてしまう
といった流れで、気づかないうちにプロジェクトが重くなっていきがちです。
その結果、
- 環境構築でエラーが出る
- ライブラリのバージョン違いに悩まされる
- 数か月後にコードを見返して「なぜこれを使っているのか分からない」
といった状況に陥ることも珍しくありません。
本来であれば、まず考えるべきなのはとてもシンプルです。
「この処理、Pythonの標準ライブラリだけでできないかな?」
Pythonは最初から多くの道具を持った状態で配布されている言語です。 それを知らないまま進んでしまうと、本当は近道があったのに、わざわざ遠回りをしてしまうことになります。

この記事では、そうした無駄な遠回りを減らすために、
標準ライブラリで“どこまでできるのか”を全体像として把握することをゴールにしています。
背景:Pythonの哲学「Batteries Included」
Pythonの標準ライブラリを語るうえで欠かせないのが、
「Batteries Included(電池付属)」というPythonの哲学です。
これは、「Pythonをインストールした時点で、実用的な作業に必要な道具がひと通りそろっている」 という考え方を表しています。
たとえば、他の言語では追加ライブラリが必要になりがちな、
- ファイルやディレクトリの操作
- JSON・CSVなどのデータ形式の読み書き
- HTTP通信や簡単なWebアクセス
- ログ出力やテストの仕組み
- 並列処理や非同期処理
といった処理も、Pythonでは標準ライブラリとして最初から用意されています。
この設計思想には、いくつか大きなメリットがあります。
移植性が高い
標準ライブラリは、Windows・macOS・Linuxといった主要な環境で同じように動作するよう設計されています。 そのため、「自分の環境では動いたのに、別の環境では動かない」というトラブルを減らすことができます。
すぐに実用レベルに到達できる
Pythonをインストールした直後から、
- ちょっとした自動化スクリプトを書く
- ログ付きのツールを作る
- 簡単なデータ処理を行う
といったことが、追加インストールなしで始められます。 これは学習初期のハードルを大きく下げてくれます。
依存関係を増やさずに済む
外部ライブラリを使わないということは、
- インストール手順がシンプルになる
- バージョン違いの問題が起きにくい
- 将来にわたって動かしやすい
といったメリットにつながります。 特に、社内ツールやちょっとしたスクリプトでは、「標準だけで完結する」ことが大きな強みになります。

もちろん、外部ライブラリを使うこと自体が悪いわけではありません。 ただしその前に、
「標準ライブラリに既に答えが用意されていないか?」
を一度確認するクセをつけておくと、Pythonとの付き合い方がぐっと楽になります。
標準ライブラリの機能マップ(分野別一覧)
ここからは、この記事の中心となるパートです。
「Pythonの標準ライブラリだけで、実際に何ができるのか」を分野ごとに整理していきます。
細かい使い方をすべて覚える必要はありません。
まずは「この分野なら、このあたりのモジュールがあるんだな」と、 地図を見る感覚で眺めてみてください。
テキスト処理
string:文字種判定やテンプレート文字列re:正規表現による検索・置換difflib:テキスト差分の比較textwrap:文章の折り返しや整形
ファイル・ディレクトリ操作
pathlib:パス操作をオブジェクト指向で扱うos.path:従来のパス操作APIglob:ワイルドカードによるファイル検索shutil:コピー・移動・削除などの高水準操作tempfile:一時ファイル・一時ディレクトリの作成
データ型・データ構造
collections:deque、Counter、defaultdictなど便利なコンテナheapq:優先度付きキューdatetime:日付・時刻の操作zoneinfo:タイムゾーン管理enum:列挙型の定義
数値・数学演算
math:基本的な数学関数cmath:複素数演算decimal:高精度な10進数計算statistics:平均・分散などの統計処理random:乱数生成
データの永続化とフォーマット
json:JSONの読み書きcsv:CSVファイルの処理sqlite3:軽量データベース(ファイル1つで完結)configparser:INI形式の設定ファイルtomllib:TOMLファイルの読み込みpickle:Pythonオブジェクトの直列化
並行実行とプロセス管理
threading:マルチスレッドmultiprocessing:マルチプロセス並列処理asyncio:非同期I/Osubprocess:外部コマンドの実行
ネットワーク・インターネット
socket:低水準ソケット通信http.client:HTTP通信の低水準APIurllib.request:URLアクセスやデータ取得email/smtplib:メールの作成・送信
開発・テスト
typing:型ヒントunittest:ユニットテストdoctest:ドキュメントテストtimeit:処理速度の計測
GUI開発
tkinter:シンプルなGUIアプリケーション
ここまで見てきて、
「思ったより、もう標準でそろってるな…」
と感じた方も多いのではないでしょうか。
ただ、次に出てくる疑問はたいていこれです。
「で、この中から今の目的に合うものをどう選べばいいの?」
そんなときに役立つのが、用途別に整理された逆引き形式の資料です。
逆引きPython標準ライブラリ 目的別の基本レシピ180+!
今やりたい処理から、使うべき標準ライブラリをすぐに探せます。

このマップと逆引きレシピを組み合わせることで、
「標準ライブラリを知らないせいで遠回りする」ことは、かなり減らせるはずです。
具体的な手順と実装方法
ここからは、標準ライブラリを「知っている」状態から「使える」状態に近づけるために、 代表的なユースケースをいくつかピックアップして見ていきます。
すべてを一度に覚える必要はありません。
「こういう場面では、この標準ライブラリを思い出せばいいんだな」 という引き出しを増やす感覚で読んでみてください。
A. コマンドライン引数の解析(argparse)
Pythonでユーティリティスクリプトやツールを作ると、
- 入力ファイルを指定したい
- オプションフラグを切り替えたい
- ヘルプメッセージを自動生成したい
といった要望がすぐに出てきます。
そんなときに活躍するのが argparse です。 外部ライブラリを使わなくても、実用レベルのCLIツールが作れます。
- パーサーを作成
argparse.ArgumentParser()で解析用オブジェクトを作ります。 - 引数を定義
.add_argument()を使って、引数名・型・デフォルト値・説明文を設定します。 - 解析を実行
.parse_args()を呼び出すと、引数が属性として取得できます。
「とりあえず sys.argv を手で解析する」よりも、 最初から argparse を使うほうが安全で読みやすいコードになります。
B. データベース操作(sqlite3)
「ちょっとデータを保存したいだけなのに、サーバーを立てるのは大げさ…」 そんな場面で便利なのが sqlite3 です。
SQLiteは、1つのファイルだけで完結するデータベースで、 Pythonの標準ライブラリからすぐに扱えます。
- データベースに接続
sqlite3.connect("sample.db")でファイルに接続します。 - カーソルを作成
.cursor()でSQLを実行するためのカーソルを取得します。 - SQLを実行
.execute()を使ってテーブル作成やデータ操作を行います。 - 確定と終了
.commit()で変更を保存し、.close()で接続を閉じます。
設定ファイルやログを少し蓄積したい程度なら、 外部DBやORMを使わなくても sqlite3 で十分なケースは多いです。
C. ログ記録の設定(logging)
最初は print() で済ませていたとしても、
- エラーだけを記録したい
- 実行履歴をファイルに残したい
- デバッグ用の出力を切り替えたい
となった瞬間、logging の出番です。
- 基本設定
logging.basicConfig()でログレベルやフォーマット、出力先を指定します。 - ロガーを取得
logging.getLogger()でロガーを用意します。 - ログを出力
.debug(),.info(),.warning(),.error()などで記録します。
ログを最初から logging で書いておくと、 あとから運用やデバッグが驚くほど楽になります。
D. プロセス並列処理(multiprocessing)
CPUを使う重たい処理を高速化したい場合、 スレッドではなく multiprocessing が選択肢になります。
PythonではGILの影響で、CPUバウンドな処理は マルチプロセスのほうが向いているケースが多いです。
- 処理内容を関数として定義
- プロセスプールを作成
multiprocessing.Pool()で使用するプロセス数を指定します。 - タスクを並列実行
.map()や.apply()を使って処理を分配します。
「重たい for ループが遅い」と感じたら、 外部ライブラリを探す前に multiprocessing を思い出してみてください。

このように、標準ライブラリだけでも 実務・自動化・ツール開発に十分耐える武器がそろっています。
結論:標準ライブラリを知ることは「選択肢を増やす」こと
ここまで見てきたように、Pythonの標準ライブラリは想像以上に広く、そして実用的です。
もちろん、すべてのモジュールを暗記する必要はありません。
大切なのは、「こういう処理なら、標準ライブラリに選択肢があるかもしれない」 と一度立ち止まって考えられるようになることです。
標準ライブラリをうまく使えるようになると、
- 外部ライブラリ探しにかける時間が減る
- 環境構築や依存関係のトラブルが少なくなる
- どこでも動かしやすいコードが書ける
といったメリットが積み重なっていきます。 特に、ちょっとした自動化スクリプトや社内ツールでは、 「標準ライブラリだけで完結する」という点が大きな強みになります。
一方で、標準ライブラリを知ってくると、 「どう書けば、より読みやすく・安全で・Pythonらしいコードになるのか?」 という次の疑問も出てくるはずです。
そんな段階に進んだときにおすすめなのが、 書き方・設計・考え方を一段レベルアップさせてくれる定番書です。
Effective Python
標準ライブラリの活かし方も含めて、 「なぜその書き方が良いのか」を具体例で学べます。
まずは標準ライブラリという地図を頭に入れ、
必要に応じて外部ライブラリを選ぶ。
その順番を意識するだけで、Pythonとの付き合い方は ぐっとシンプルで、楽しいものになります 😊
あわせて読みたい
この記事で紹介した標準ライブラリを、もう少し具体的に使ってみたい方はこちらもおすすめです。 「知っている」から「実際に書ける」へ進むための関連記事をまとめました。
- Pythonのargparse入門|コマンドライン引数を初心者向けにやさしく解説!
- 【Python入門】ログ出力の基本をやさしく解説|printとの違いやloggingの使い方も紹介!
- 【Python入門】pathlibの使い方を完全解説|フォルダー・パス操作が簡単になる方法
- 【Python入門】jsonモジュールの使い方|JSONの読み書きと変換をやさしく解説!
- Pythonの並列処理を完全理解!concurrent.futuresで簡単マルチスレッド&マルチプロセス
まずは気になるものから1つ選んで読んでみてください。 標準ライブラリへの理解が深まるほど、「外部ライブラリが本当に必要かどうか」を 自分で判断できるようになります。
よくある質問(Q&A)
- Q標準ライブラリだけで本当に実務はこなせますか?
- A
内容によりますが、小〜中規模のツールや自動化、社内向けスクリプトであれば、 標準ライブラリだけで十分に対応できるケースは多いです。 ファイル操作、設定管理、ログ出力、HTTP通信、データ保存まで一通りそろっているため、 「まず動くものを作る」段階では困ることはほとんどありません。
- Q外部ライブラリは使わないほうがいいのでしょうか?
- A
いいえ、外部ライブラリを使うこと自体はまったく問題ありません。 大切なのは順番です。
「標準ライブラリでできるか?」を確認したうえで、それでも足りない場合に外部ライブラリを選ぶ という判断ができるようになると、コードの見通しが良くなります。
- Q標準ライブラリはどこまで覚えれば十分ですか?
- A
すべてを覚える必要はありません。 まずは
pathlib、json、logging、argparseなど、 よく使う分野から触れていくのがおすすめです。 「こういう処理がしたくなったら、このモジュールを思い出せばいい」 という引き出しを増やしていく意識が大切です。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。