はじめに
Pythonを使っていて、「あれ?この処理、外部ライブラリ入れないと無理かな?」と感じたこと、ありませんか? でも実はそれ、Pythonの標準ライブラリだけで解決できるケースがとても多いんです。
Python標準ライブラリは、最初からインストールされていて、文字列処理・ファイル操作・日付計算・並列処理・ネットワーク通信まで幅広くカバーしています。 ただし問題なのが、「種類が多すぎて、どれを使えばいいか分からない」こと。
そこでこの記事では、「やりたいこと」から逆引きで探せるように、Python標準ライブラリを用途別にまとめました。 困ったときにパッと開いて、「あ、これ使えばいいんだ」と分かる実践向けの事典を目指しています。
初心者の方はもちろん、 「毎回ググって同じモジュールを調べている…」という中級者の方にも、長く使えるリファレンスになるはずです。
なお、標準ライブラリ全体の地図を先に把握しておきたい方は、こちらの記事もあわせて読むと理解が一気に深まります👇
それでは早速、テキスト処理・文字列操作から見ていきましょう。 「こんなことしたいんだけど…」という場面を思い浮かべながら読み進めてみてくださいね 😊
1. テキスト処理・文字列操作
Pythonで一番よく触れるデータ型といえば、やっぱり文字列(str)ですよね。 ログ解析、CSV加工、ユーザー入力のチェックなど、実務でも日常的に登場します。
ここでは、少し複雑な文字列処理をスマートに解決できる標準ライブラリを中心に紹介します。
正規表現操作(re)
「特定のパターンを含む文字列を探したい」「条件に合う部分だけ置き換えたい」 そんなときに活躍するのが re モジュールです。
例えばこんな場面で使われます。
- メールアドレスやURLの抽出
- ログから日付やエラーコードだけを抜き出す
- フォーマットがバラバラな文字列を一括で整形する
基本的な使い方の流れは次の通りです。
re.compile()で正規表現パターンをオブジェクト化(繰り返し使う場合に便利)search()で文字列全体から一致箇所を探すmatch()で先頭が一致しているかを確認するfindall()/finditer()で一致したすべての結果を取得するsub()で一致部分を置換する
正規表現は最初こそ少しクセがありますが、 一度慣れると数行で複雑な文字列処理が書けるようになります。
基礎から丁寧に理解したい場合は、次の記事がとても参考になります👇
テキストの整形・補助
正規表現ほどガチじゃないけど、 「ちょっと整えたい」「差分を見たい」そんな場面で便利なのが次のモジュールです。
- textwrap
長い文章を指定した文字数で折り返したり、インデントを揃えたりできます。 CLIツールのヘルプ文生成などで地味に活躍します。 - difflib
2つの文字列やファイルの差分を計算できます。 設定ファイルの変更チェックや簡易レビュー用途に便利です。 - string
アルファベット一覧やテンプレート文字列など、 「地味だけどあると助かる定数・機能」がまとまっています。
これらを知っておくと、 「わざわざ自前で処理を書かなくてよかった…!」という場面が確実に増えます。

次は、ファイルやディレクトリを安全・簡潔に扱える標準ライブラリを見ていきましょう。
2. ファイル・ディレクトリ操作とアーカイブ
Pythonで自動化やツール作成をしていると、 ファイル操作・フォルダ操作はほぼ確実に登場します。
コピー、移動、削除、一覧取得、圧縮…。 これらを安全かつ読みやすく書けるかどうかで、コードの品質は大きく変わります。
オブジェクト指向パス操作(pathlib)
現在のPythonでは、ファイルパス操作の主役は pathlib です。 従来の os.path よりも直感的で、コードがとても読みやすくなります。
pathlibの特徴は次の通りです。
- パスを「文字列」ではなく「オブジェクト」として扱える
/演算子で自然にパスを結合できる- 存在確認・種類判定がメソッドとして用意されている
基本的な流れはとてもシンプルです。
Path(".")などでパスオブジェクトを作成/演算子でサブパスを連結exists()/is_file()/is_dir()で状態確認glob()でパターン検索
ファイル操作での事故(誤削除・上書き)を防ぐためにも、 pathlibベースの設計はかなりおすすめです。
より実務的な設計の考え方まで踏み込みたい方は、こちらの記事がとても参考になります👇
高水準ファイル操作(shutil)
ファイルやディレクトリをまとめて扱いたいときに便利なのが shutil です。
例えば、次のような処理が一発で書けます。
- ディレクトリごとのコピー
- フォルダ構造を保ったままの移動
- 不要ディレクトリの削除
- フォルダ全体のアーカイブ化
特に便利なのが、アーカイブ作成用の make_archive() です。
- アーカイブ名(ベース名)を指定
- zip / tar / gztar などの形式を指定
- 圧縮したいディレクトリを指定
バックアップ処理や成果物の自動圧縮などで、 わざわざ外部ツールを呼び出す必要がなくなるのは大きなメリットです。
パターン展開(glob)
「特定の拡張子のファイルだけ処理したい」 そんなときに使えるのが glob です。
Unixシェルと同じ感覚で、次のような指定ができます。
*.txt:すべてのテキストファイル**/*.csv:サブフォルダ含めてCSVを検索
pathlibの Path.glob() と組み合わせると、 読みやすさ・安全性・柔軟性のバランスがとても良くなります。

次は、データを保存・変換するための標準ライブラリを見ていきましょう。
3. データの直列化・永続化・変換
Pythonで扱うデータは、メモリ上だけで完結するとは限りません。 保存する・読み戻す・別の形式に変換する場面はとても多いです。
このセクションでは、 「軽く保存したい」「構造化して扱いたい」ときに役立つ標準ライブラリを紹介します。
データベース操作(sqlite3)
「ちょっとしたデータをちゃんと管理したい」 そんなときにちょうどいいのが sqlite3 です。
sqlite3は、外部サーバ不要で使える軽量データベース。 1つのファイルとして管理できるので、個人ツールや小規模アプリに最適です。
基本的な操作の流れは次の通りです。
sqlite3.connect()でデータベースに接続cursor()でカーソルを取得execute()でSQL文を実行- 更新系処理の後は
commit()で確定
CSVよりも構造が必要で、 本格DBほど重くしたくない場合のちょうどいい選択肢です。
JSONエンコード・デコード(json)
設定ファイルやAPI通信で頻出なのが JSON 形式。 Python標準の json モジュールで簡単に扱えます。
dumps(obj):Pythonオブジェクト → JSON文字列loads(s):JSON文字列 → Pythonのdict / list
人が読める・他言語とやり取りしやすい、 汎用性の高さが最大の魅力です。
CSVファイルの読み書き(csv)
Excelやスプレッドシートと連携するなら、 csv モジュールはほぼ必須です。
基本的な流れは次のようになります。
open(newline="")でファイルを開くcsv.reader()で行単位の読み込みcsv.DictReader()で辞書形式として扱う
列名ベースで扱える DictReader は、 可読性が高く、初心者にもおすすめです。
Pythonオブジェクトの直列化(pickle)
pickle は、Pythonオブジェクトをそのまま保存・復元できる便利な仕組みです。
ただし、ここはとても大事な注意点があります。
- 信頼できないデータは絶対に読み込まない
- 外部入力や共有用途には不向き
一時保存・ローカル専用・自分用ツールなど、 用途を限定して使うのが安全です。

次は、日付・時刻・数値計算といった、 意外と落とし穴の多い分野を見ていきましょう。
4. 日付・時刻と数値演算
日付や時刻、数値計算は一見シンプルそうに見えて、 地味にバグを生みやすいポイントでもあります。
Python標準ライブラリには、 こうした「うっかりミス」を減らすための道具がきちんと用意されています。
日付・時刻管理(datetime)
日付・時刻を扱う中心的な存在が datetime モジュールです。 現在時刻の取得、日付の加減算、文字列との相互変換まで幅広く対応できます。
datetimeで特に重要なのが、次の考え方です。
- naive:タイムゾーン情報を持たない日時
- aware:タイムゾーン情報を持つ日時
この違いを意識せずに使うと、 環境によって時刻がズレるといった事故が起こりがちです。
「とりあえず動いた」ではなく、 意図した時刻を正しく扱えているかを確認するクセをつけると安心です。
datetimeの基礎から実務での注意点まで知りたい方は、 こちらの記事がとても分かりやすいですよ👇
時刻の取得と変換(time)
もう少し低レベルに「時間」を扱いたい場合は、 time モジュールが使われます。
time():エポック(1970年1月1日)からの経過秒数を取得sleep():処理を一定時間停止
処理時間の計測や、 簡単な待ち時間制御などでよく登場します。
数学関数と数学モデル
数値計算まわりも、標準ライブラリだけでかなりカバーできます。
- math
三角関数や平方根など、基本的な数学関数を提供します。 - decimal
金融計算など、誤差を極力出したくない場面で活躍します。 - random
乱数生成やランダム抽選、簡単なシミュレーションに便利です。
特にお金や割合を扱う場合は、 floatではなくdecimalを選ぶだけでトラブルを回避できることも多いです。

次は、OS機能・並行実行・デバッグといった、 一歩踏み込んだ実践向けライブラリを見ていきましょう。
5. OSサービス・並行実行・デバッグ
ここからは、少し実務寄りの内容です。 CLIツールを作ったり、処理を高速化したり、トラブル時に原因を追いやすくしたりと、 「ちゃんと動くPythonコード」を書くために欠かせない標準ライブラリを紹介します。
コマンドライン引数の解析(argparse)
Pythonスクリプトをコマンドラインから実行するなら、 argparse はほぼ必須と言っていい存在です。
例えば、次のようなことが簡単にできます。
- オプション引数(
--input,--outputなど)の定義 - 必須引数・任意引数の区別
- 自動生成されるヘルプメッセージ
基本的な流れはとてもシンプルです。
ArgumentParserオブジェクトを作成add_argument()で引数を定義parse_args()で解析
「使い方が分かるスクリプト」になるだけで、 ツールとしての完成度は一気に上がります。
初めてargparseを触る方は、こちらの記事を一度読んでおくと安心です👇
並列・並行処理
処理が重くなってきたときに検討したいのが、 並列・並行処理です。
Python標準ライブラリでは、次の選択肢が用意されています。
- concurrent.futures:高レベルで扱いやすい
- threading:I/O待ちが多い処理向け
- multiprocessing:CPUをフル活用したい処理向け
特に concurrent.futures は、 スレッド・プロセスを意識しすぎずに使えるため、最初の一歩に最適です。
「どれを選べばいいか分からない…」という方は、 次の記事がかなり助けになります👇
サブプロセス管理(subprocess)
Pythonから外部コマンドを実行したい場合は、 subprocess を使います。
run() を使えば、
- コマンド実行
- 終了コードの取得
- 標準出力・標準エラーの取得
までを一括で扱えます。 シェル呼び出しより安全で、制御もしやすいのがポイントです。
ログ記録(logging)
トラブルシューティングのしやすさを左右するのが logging です。
print文とは違い、
- ログレベル(info / warning / error など)
- 出力先(ファイル・コンソール)
- フォーマット
を柔軟に制御できます。
「エラーが起きたときに原因が分かるコード」を書くためにも、 最初からloggingを使う習慣をつけておくと後が楽です。

次は、インターネット通信や構造化データの処理を見ていきましょう。
6. インターネット・構造化データ処理
Web APIを叩いたり、HTMLやXMLを解析したりと、 インターネット上のデータを扱う場面でも、Python標準ライブラリはしっかり活躍します。
「スクレイピング=外部ライブラリ必須」と思われがちですが、 仕組みを理解するだけなら標準ライブラリで十分なケースも多いんです。
URLリソースへのアクセス(urllib.request)
HTTPやFTPを通じてデータを取得したい場合は、 urllib.request を使います。
代表的なのが urlopen() です。
- Web APIからJSONを取得する
- ファイルをダウンロードする
- 簡単なHTTP通信を行う
といった処理を、外部ライブラリなしで実装できます。
requestsのほうが書きやすい場面もありますが、 「標準ライブラリで何ができるか」を知っておくだけでも選択肢が広がります。
XML / HTML解析
構造化されたデータを解析するための標準ライブラリも用意されています。
- xml.etree.ElementTree
XMLデータの読み込み・解析・生成を行うためのシンプルなAPIです。 - html.parser
HTMLタグやテキストに反応するハンドラを定義し、 自前のパーサを組み立てることができます。
がっつりスクレイピングをする場合は外部ライブラリが便利ですが、 HTMLの構造理解や軽い解析なら、標準ライブラリでも十分対応できます。
低水準ネットワーク通信(socket)
socket は、かなり低レベルな通信を扱うためのライブラリです。
普段の業務で直接触る機会は多くありませんが、
- ネットワークの仕組みを理解したい
- 独自プロトコルを扱う
- 通信処理の基礎を学びたい
といった場合には欠かせない存在です。
「普段は使わないけど、知っていると強い」 そんな位置づけの標準ライブラリと言えます。

次は、コードの品質を支える開発・テスト向けライブラリを見ていきましょう。
7. 開発・テストツール
最後は、コードの品質・安全性・保守性を支える標準ライブラリです。 「ちゃんと動く」だけでなく、「後から直しやすい」コードを書くために欠かせません。
ユニットテスト(unittest)
Python標準のテストフレームワークが unittest です。 外部ライブラリを使わなくても、テストを書く環境は最初から整っています。
基本的な使い方はとてもシンプルです。
unittest.TestCaseを継承したクラスを作成test_で始まるメソッドを書くassertEqual()などで結果を検証
「あとでまとめて動作確認しよう」ができるようになるだけで、 修正やリファクタリングの心理的ハードルが一気に下がります。
対話型実行例のテスト(doctest)
doctest は、少しユニークなテスト手法です。
関数やモジュールの docstring 内に書いた実行例 が、 そのままテストとして実行されます。
例えば、
- 使い方のサンプル
- 簡単な入力と出力例
をそのまま検証できるため、 ドキュメントとコードのズレを防ぐ効果があります。
システム固有の機能(sys)
sys モジュールは、Pythonインタプリタと密接に関わる情報を扱います。
sys.argv:コマンドライン引数sys.path:モジュール検索パスsys.modules:読み込み済みモジュール
普段は意識しなくても、 「なぜimportできないのか」「実行時に何が渡っているのか」を調べる際に、 助け舟を出してくれる存在です。

ここまで見てきたように、Python標準ライブラリだけでも、 かなり広い範囲の問題を解決できることが分かります。
📘 おすすめ書籍
ここまで読んで、
- 「標準ライブラリ、思ったより多いな…」
- 「全部は覚えきれないけど、手元に辞書が欲しい」
と感じた方も多いと思います。 そんな方には、「逆引きで調べられる書籍」を1冊持っておくのがおすすめです。
逆引きPython標準ライブラリ
標準ライブラリを用途別・逆引き形式でまとめた定番書です。 この記事と同じ発想で、「やりたいこと」から素早く答えにたどり着けます。
調べ物用として机の横に置いておくと、 ググる回数が目に見えて減ります。
逆引きPython標準ライブラリ
✅ Amazonでチェックする | ✅ 楽天でチェックする
解きながら学ぶ Pythonつみあげトレーニングブック
「読むだけだと身につかない…」という方にはこちら。 手を動かしながら標準ライブラリを使う感覚が自然と身につきます。
小さな課題を積み重ねる構成なので、 初心者から中級者へのステップアップにもぴったりです。
解きながら学ぶ Pythonつみあげトレーニングブック
✅ Amazonでチェックする | ✅ 楽天でチェックする
まとめ
Python標準ライブラリは、 「知らないから使えない」だけというケースが本当に多いです。
文字列処理、ファイル操作、日時計算、並列処理、ネットワーク…。 今回紹介した内容だけでも、 日常的な自動化・ツール作成の大半はカバーできます。
外部ライブラリを探す前に、
- 標準ライブラリでできないか?
- すでに用意されていないか?
と一度立ち止まって考えるクセをつけるだけで、 コードはシンプルになり、学習コストも下がります。
この記事は、「困ったときに戻ってくる場所」として使ってもらえたら嬉しいです。 ぜひブックマークして、日々のPython開発に役立ててくださいね 😊
参考文献
- Python 標準ライブラリ一覧(公式ドキュメント)
- 組み込み関数 — Python公式ドキュメント
- os — OSインタフェース
- sys — システム固有のパラメータと関数
- pathlib — オブジェクト指向のファイルシステムパス
- shutil — 高水準のファイル操作
- glob — Unix形式のパス名パターン展開
- re — 正規表現操作
- json — JSONエンコードおよびデコード
- csv — CSVファイルの読み書き
- datetime — 基本的な日付型および時刻型
- time — 時刻へのアクセスと変換
- argparse — コマンドラインオプションと引数の解析
- subprocess — サブプロセス管理
- threading — スレッドベースの並列処理
- multiprocessing — プロセスベースの並列処理
- concurrent.futures — 並列タスク実行
- logging — ログ記録機能
- unittest — ユニットテストフレームワーク
- doctest — 対話型実行例のテスト
- sqlite3 — SQLiteデータベース
- socket — 低水準ネットワークインタフェース
- http.client — HTTPプロトコルクライアント
- urllib.request — URLを開くための拡張ライブラリ
- xml.etree.ElementTree — XML処理モジュール
- html.parser — シンプルなHTMLおよびXHTMLパーサ
- pickle — Pythonオブジェクトの直列化
- hashlib — セキュアハッシュとメッセージダイジェスト
- itertools — 効率的なループ用イテレータ
- functools — 高階関数と呼び出し可能オブジェクト操作
よくある質問(Q&A)
- QPython標準ライブラリだけで、実務や業務自動化は本当に対応できますか?
- A
はい、多くのケースで対応できます。 ファイル操作、CSV・JSON処理、日時計算、ログ出力、並列処理、簡単なHTTP通信などは、 標準ライブラリだけで十分に実用レベルの実装が可能です。
- Q外部ライブラリを使うかどうかの判断基準は何ですか?
- A
目安としては、次のように考えると分かりやすいです。
- 標準ライブラリで書くと、コードが極端に複雑になる
- 実装・保守コストが明らかに高くなる
- その分野専用の実績あるライブラリが存在する
逆に言えば、 「少し長くなるだけ」「標準で十分読める」のであれば、 無理に外部ライブラリを使う必要はありません。
まずは標準ライブラリを知ったうえで選ぶ、という順番が大切です。
- Qこの記事はどのPythonバージョンを想定していますか?
- A
この記事で紹介している内容は、 Python 3.9以降を前提にしています。
記載している標準ライブラリや使い方は、 現在主流のPython 3系であればほぼそのまま利用できます。
ただし、古いPython(2系や3.6以前)を使っている場合は、 一部挙動や推奨されない書き方が含まれる可能性があるため注意してください。













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