モジュールとインポート
モジュールとは
モジュールは .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で仮想環境を使う