記事一覧へ戻る 本の順番で続きを読む

モジュールとインポート - コードの再利用

Python3初級 | 2026/02/18 15:36

モジュールとインポート

モジュールとは

モジュールは .py ファイルのことです。関数やクラスを別ファイルに分けて再利用できます。

インポートの基本

# モジュール全体をインポート
import math
print(math.pi)        # 3.141592653589793
print(math.sqrt(16))  # 4.0

# 特定の関数だけインポート
from math import sqrt, pi
print(pi)
print(sqrt(16))

# 別名をつける
import datetime as dt
now = dt.datetime.now()

from collections import OrderedDict as OD

自作モジュール

# utils.py
def greet(name):
    return f"こんにちは、{name}さん!"

def add(a, b):
    return a + b

PI = 3.14159
# main.py
import utils

print(utils.greet("太郎"))
print(utils.add(3, 5))

# または
from utils import greet, PI
print(greet("花子"))

if __name__ == "__main__"

# calculator.py
def add(a, b):
    return a + b

def multiply(a, b):
    return a * b

# このファイルを直接実行した場合のみ動く
if __name__ == "__main__":
    print(add(3, 5))       # 8
    print(multiply(4, 6))  # 24

このファイルを import calculator した場合は if ブロックは実行されません。

主要な標準ライブラリ

os - OS操作

import os

print(os.getcwd())        # 現在のディレクトリ
print(os.listdir("."))    # ファイル一覧
os.makedirs("dir/sub", exist_ok=True)

datetime - 日時操作

from datetime import datetime, timedelta

now = datetime.now()
print(now.strftime("%Y年%m月%d日 %H:%M"))

# 7日後
future = now + timedelta(days=7)

# 文字列から変換
dt = datetime.strptime("2026-01-15", "%Y-%m-%d")

random - 乱数

import random

print(random.randint(1, 100))       # 1-100のランダム整数
print(random.choice(["A", "B", "C"]))  # ランダムに1つ選択
print(random.random())               # 0.0-1.0のランダム小数

collections - 特殊コンテナ

from collections import Counter, defaultdict

# Counter: 出現回数をカウント
words = ["apple", "banana", "apple", "cherry", "banana", "apple"]
count = Counter(words)
print(count.most_common(2))  # [('apple', 3), ('banana', 2)]

# defaultdict: デフォルト値付き辞書
dd = defaultdict(list)
dd["fruits"].append("apple")
dd["fruits"].append("banana")
print(dd)  # {'fruits': ['apple', 'banana']}

pip(パッケージ管理)

# パッケージのインストール
pip install requests

# バージョン指定
pip install requests==2.28.0

# requirements.txt の作成・利用
pip freeze > requirements.txt
pip install -r requirements.txt

仮想環境

# 仮想環境の作成
python3 -m venv myenv

# 有効化
source myenv/bin/activate    # Linux/Mac
myenv\Scripts\activate       # Windows

# 無効化
deactivate

まとめ

  • import でモジュールを読み込んで機能を再利用
  • from ... import ... で特定の要素だけインポート
  • if __name__ == "__main__" でスクリプトとモジュールを両立
  • 標準ライブラリ(math, os, datetime, random, json, csv等)を活用
  • pip で外部パッケージを管理、venv で仮想環境を使う