<一覧に戻る

Python標準ライブラリの活用

「同じような処理を毎回ゼロから書いていないでしょうか?」そんなときに頼れるのが、Pythonに最初から備わっている“標準ライブラリ”です。

追加インストールなしで、日付操作、乱数生成、ファイル操作、データ保存など、実務でもよくある作業をすぐに始められます。はじめての方でも使いやすい代表的なモジュールを、サンプルコードとやさしい解説で一緒に体験してみましょう。

datetimeモジュール

まずは「現在時刻を表示したい」「1週間後の日付を知りたい」といった、日付・時刻の基本操作です。

日付の表示形式で困ったことはありませんか?datetimeを使えば、取得も計算もフォーマット変更もスムーズにできます。

import datetime

# 現在の日付と時刻を取得
now = datetime.datetime.now()

# フォーマットを変更して表示
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
print("現在の日付と時刻:", formatted_now)

# 1週間後の日付を計算
one_week_later = now + datetime.timedelta(weeks=1)
formatted_one_week_later = one_week_later.strftime("%Y-%m-%d %H:%M:%S")
print("1週間後の日付と時刻:", formatted_one_week_later)

最初にdatetimeモジュールを読み込み、datetime.datetime.now()で“今この瞬間”の日時オブジェクトを手に入れています。

日時はそのまま表示すると少し読みにくいことがあるため、strftimeというメソッドで表示形式を整えます。例えば"%Y-%m-%d %H:%M:%S"は「年-月-日 時:分:秒」という意味です。将来や過去の日付を計算したい場合は、datetime.timedeltaで「1週間」「3日」「2時間」といった“差”を足し引きします。上の例ではweeks=1を加算して、1週間後の日時を簡単に求めています。

ちょっとしたヒントとして、タイムゾーンを扱いたい場合は標準ライブラリのzoneinfo(Python 3.9以降)も便利です。日本時間で“今”を取得したいときは次のように書けます。

from datetime import datetime
from zoneinfo import ZoneInfo

now_jst = datetime.now(ZoneInfo("Asia/Tokyo"))
print(now_jst.strftime("%Y-%m-%d %H:%M:%S %Z"))

randomモジュール

「サンプルデータを作りたい」「リストからランダムに1つ選びたい」――そんな場面で役立つのがrandomです。

実験やテストで“それっぽい値”が欲しいときに強い味方になります。

import random

# 1から10の範囲でランダムな整数を生成
random_integer = random.randint(1, 10)
print("ランダムな整数:", random_integer)

# リストからランダムに要素を選択
choices = ['apple', 'banana', 'cherry', 'date']
random_choice = random.choice(choices)
print("ランダムに選ばれた果物:", random_choice)

# ランダムなサンプルを生成(重複なしで2つ)
random_sample = random.sample(choices, 2)
print("ランダムに選ばれた果物のサンプル:", random_sample)

random.randint(1, 10)は1から10までの整数を“両端を含めて”ランダムに返します。

リストから1つだけ取り出したいならrandom.choice、複数個を重複なしで取りたいならrandom.sampleがぴったりです。もし「毎回同じ結果で検証したい」というときは、最初にrandom.seed(0)のように“種”を固定すると、同じ乱数列が再現できます。テストコードの安定化に役立ちます。

osモジュール

ファイルやフォルダを扱う作業は日常茶飯事です。 「今どのフォルダで処理している?」「この中にどんなファイルがある?」といった情報は、osで素早く取得できます。

import os

# 現在の作業ディレクトリを取得
current_directory = os.getcwd()
print("現在の作業ディレクトリ:", current_directory)

# ディレクトリ内のファイル一覧を表示
files = os.listdir(current_directory)
print("ディレクトリ内のファイル一覧:")
for file in files:
    print(file)

os.getcwd()は“いま自分がいる”作業ディレクトリを文字列で返します。

さらにos.listdir()でそのフォルダ内のファイルやサブフォルダの名前を一覧できます。たとえば特定の拡張子だけを処理したい場合は、endswith(".txt")のような条件で絞り込むことができます。大量のファイルがある場合はos.scandir()を使うと、メタ情報にアクセスしやすく効率も良くなります。

より直感的な書き方をしたい方は、同じく標準ライブラリのpathlibもおすすめです。パス結合や拡張子チェックが読みやすくなります。

from pathlib import Path

p = Path.cwd()
for path in p.iterdir():
    if path.is_file() and path.suffix == ".txt":
        print("テキストファイル:", path.name)

jsonモジュール

設定ファイルやWeb APIのデータ形式としておなじみのJSON。 「辞書データをファイルに保存したい」「あとで同じ形で読み戻したい」ときは、jsonが最短ルートです。日本語を含むデータも、少しの工夫で読みやすく保存できます。

import json

# 保存するデータ
data = {
    "name": "Alice",
    "age": 30,
    "city": "Tokyo"
}

# データをJSON形式でファイルに保存(日本語をそのまま・見やすく整形)
with open('data.json', 'w', encoding='utf-8') as json_file:
    json.dump(data, json_file, ensure_ascii=False, indent=2)

print("データをdata.jsonに保存しました。")

# JSON形式のデータを読み込む
with open('data.json', 'r', encoding='utf-8') as json_file:
    loaded_data = json.load(json_file)
    print("読み込んだデータ:", loaded_data)

辞書(dict)を用意して、with open(..., encoding='utf-8')でファイルを開き、json.dumpでJSONとして保存しています。

ここでensure_ascii=Falseにすると日本語がそのままの形で書き出され、indent=2で見やすく整形されます。読み込みはjson.loadを使うだけで、ファイルの内容が同じ辞書形に復元されます。JSONは“テキスト形式”なので、Gitなどのバージョン管理にも向いており、設定やデータの差分が確認しやすいのも利点です。

そのほかの標準ライブラリをご紹介

ここまでのモジュールに慣れてきたら、「他にどんな標準ライブラリが役立つの?」と気になってきませんか。次のようなモジュールも、日々のコードをぐっと短く、安全に、読みやすくしてくれます。

  • pathlib: パス操作を直感的に。OS差異を意識せずパス結合や探索がしやすくなります。
  • statistics: 平均や中央値などの基本統計量を簡単に計算できます。
  • collections: Counterdefaultdictでデータ集計や初期化をスッキリ書けます。
  • itertools: 繰り返し処理の組み合わせ・グルーピングなどが効率的に書けます.
  • urllib.request / http.client: 追加ライブラリなしで簡単なHTTPアクセスが可能です。

これらはすべて最初から入っている道具箱です。必要になったら都度ドキュメントを検索し、まずは標準ライブラリでできないかを考える習慣をつけると、コードの品質も作業スピードも自然と上がっていきます。

まとめと次のステップ

今回学習した内容をまとめます。

  • 「日付や時間を扱いたい」→ datetime(必要ならzoneinfo)
  • 「テスト用にランダム値がほしい」→ random(再現性はseedで確保)
  • 「ファイル・フォルダを扱う」→ os(より直感的に書きたいならpathlib)
  • 「設定やデータを保存・共有したい」→ json(UTF-8や整形で読みやすく)

まずはこの記事のサンプルをコピーして実行し、自分の用途に合わせて少しずつ改造してみましょう。標準ライブラリを味方につければ、「同じ処理を何度も書く」「車輪の再発明をしてしまう」といった悩みから解放され、読みやすく信頼できるPythonコードへと一歩近づけます。次の小さなプロジェクトで、今日学んだモジュールをさっそく取り入れてみましょう!

出力結果: