はじめに
Pythonを学び始めてまだ少ししか経っていませんが、
私はPythonの便利さに少し疑問を持っていました。
それでも、学習を進めるうちにだんだんと
標準ライブラリの充実さを感じるようになってきました。
Pythonには、初めから使える標準ライブラリと呼ばれる
便利なツールの詰め合わせがたくさん用意されています。
これを知っているかどうかで、
プログラミングの効率もできることの幅も大きく変わってきます。
例えば、
- ファイルを読み書きする
- 乱数を使って抽選機能を作る
- Webからデータを取得する
- 簡単な統計を取る
- 日付を扱う
など、これらはすべて標準ライブラリだけでできます。
しかも、特別なインストールも不要です。
これらは、実務や副業の現場でもすぐに活かせる力になります。
私自身がPythonの独学を進めながら
学習で利用した標準ライブラリを中心に
まとめてご紹介していきます。
この記事はこんな方におすすめです!
- Pythonの基本文法を学んで、
もう一歩踏み込みたい方 - importは何となく使ってるけど、
実際にどう使えば便利なのかわからない方 - 副業や業務で、Pythonを効率的に
使いたいと考えている方 - 「Pythonでできること」を
広く浅く体感してみたい方
第1章:ファイル操作
Pythonを使ってできることの中でも、
- ファイルを開いて中身を読み取る
- ファイルに書き込む
といった操作はとても基本的です。
しかも、実務でもCSVファイルの書き出しや
帳票の出力など頻繁に登場します。
実際、私も学習においてちょっとしたスクリプトを書くときや、
学習のメモを整理するときにファイル入出力を
使うようにしています。
Pythonにはこの機能を簡単に実現できる
標準ライブラリが揃っているので、
初心者でもすぐに扱えるようになります。
ファイルを開く:open()
関数
Pythonでファイルを開くときは、open()
関数を使います。
f = open('sample.txt', 'r') # 読み込みモードで開く
2つめの引数の 'r'
は「読み込み(read)」モードを表します。
他にも以下のようなモードがあります。
モード | 説明 |
---|---|
'r' | 読み込み専用(デフォルト) |
'w' | 書き込み専用(上書き) |
'a' | 追記(ファイルがなければ作成) |
'b' | バイナリモード(画像など) |
'x' | 新規作成専用(存在時はエラー) |
たとえば、ファイルに文章を書き込むには次のようにします。
f = open('output.txt', 'w')
f.write('こんにちは、Python!')
f.close()
基本的なファイル操作はこのような感じです。
しかし、実際にはこの書き方よりも
with
文と組み合わせた書き方 の方が安全で一般的です。
with
文でのファイル操作
ファイルを開いたままにしておくと、
閉じ忘れが発生することもあり
それが不具合の原因になることもよくあります。
そんなときに使えるのがwith
文です。
with open('output.txt', 'w') as f:
f.write('こんにちは、Python!')
これなら、with
ブロックを抜けたときに
自動で f.close()
が呼ばれます。
そのため、ファイル操作は必ず with
文で書く癖をつけると安心です。
JSONファイルを扱う:json
モジュール
多くのアプリやWeb APIが
JSON形式でデータをやり取りしています。
Pythonでは json
モジュールを使えば、
JSONの読み書きもとても簡単です。
辞書をJSONファイルとして保存(書き込み):
import json
data = {'name': 'Nico', 'age': 27}
with open('data.json', 'w') as f:
json.dump(data, f)
JSONファイルをPythonの辞書として読み込み:
with open('data.json', 'r') as f:
loaded = json.load(f)
print(loaded['name']) # 'Nico'
文字列として扱う場合:dumps()
とloads()
# 辞書 → JSON文字列
json_str = json.dumps(data)
# JSON文字列 → 辞書
parsed = json.loads(json_str)
これらを使いこなせるようになると、
Web APIから取得したデータを整形して保存したり、
自作ツールで設定ファイルを読み込む
といった作業ができるようになります。
第2章:OS・ファイルシステム操作
ファイル操作を行う際には、
- そもそもそのファイルがどこにあるのか
- 複数のファイルを一括で処理したい
といったニーズが必ず出てきます。
この章では、そんなときに活躍する2つの標準ライブラリos
モジュールとglob
モジュールについてご紹介します。
osモジュール:ファイルやディレクトリ操作
os
モジュールは、
ファイルの存在確認・パス操作・ディレクトリの作成
など、OSに近い操作をPythonから行える便利なモジュールです。
よく使われる関数として、
import os
# ファイル・ディレクトリの存在確認
print(os.path.exists('sample.txt'))
# ファイルかどうか
print(os.path.isfile('sample.txt'))
# ディレクトリかどうか
print(os.path.isdir('my_folder'))
# カレントディレクトリの取得
print(os.getcwd())
# ディレクトリの作成(存在しないときだけ)
os.makedirs('new_folder', exist_ok=True)
# ファイルのパス結合
path = os.path.join('data', 'result.txt')
OSによってパスの区切り記号(/
or \
)が異なるためos.path.join()
で正しくパスを作るのが重要ポイントです。
globモジュール:パターンでファイル検索
複数のファイルを一括で扱いたいときには、glob
モジュールが非常に便利です。
たとえば「*.txt」のように、
ワイルドカードでファイルを検索できます。
テキストファイルをまとめて取得したい場合、
import glob
# カレントディレクトリ内のすべてのtxtファイルを取得
txt_files = glob.glob('*.txt')
print(txt_files)
これでカレントディレクトリ内のファイルについて
一覧で取得することが可能になります。
また、対象ディレクトリの中の
サブディレクトリも含めたいときの
再帰的検索で取得する場合は、
# ** を使って再帰的に検索(Python 3.5以降)
all_files = glob.glob('**/*.py', recursive=True)
print(all_files)
副業では、ファイルの一括処理の
CSVのまとめ処理やログファイルの集計など
を行うような場面では、これらのコードの考え方が役立ちます。
補足:os
と glob
を組み合わせる
# ディレクトリを作り、特定のファイルを移動する
import os, glob, shutil
os.makedirs('backup', exist_ok=True)
for file in glob.glob('*.log'):
shutil.move(file, os.path.join('backup', file))
このように、複数の標準モジュールを組み合わせることで、
日常の手作業をPythonで自動化することも可能になります。
第3章:Pythonの数学系ライブラリ
Pythonを実務で使うようになると、
ちょっとした数値計算やデータの統計処理、
ランダムな値の生成などが必要になる場面がよくあります。
たとえば、
- アンケートの平均を出す
- ランダムに抽選を行う
- 学習アプリで簡単な数学クイズを出題する
などのケースがぱっと考えられます。
実は、これらもすべて標準ライブラリだけで完結できるのがPythonの魅力です。
この章では、Pythonに標準搭載されている
次の3つのモジュールを中心に紹介していきます。
math
モジュール:
数学的な関数を扱うrandom
モジュール:
乱数を使った処理にstatistics
モジュール:
基本的な統計処理を簡単に
mathモジュール:基本的な数学関数
math
モジュールは、数学関数を提供する標準ライブラリで、
平方根や三角関数、指数などを簡単に扱えます。
使用例として、
import math
print(math.sqrt(16)) # 平方根 → 4.0
print(math.ceil(4.2)) # 切り上げ → 5
print(math.floor(4.8)) # 切り捨て → 4
print(math.pow(2, 3)) # 2の3乗 → 8.0
print(math.pi) # 円周率
print(math.e) # 自然対数の底
Pythonは機械学習やAIでの案件もよくつかわれますが
数学関数を使いデータを扱う場面もあるので
これらを押さえておくことが役に立ちます。
randomモジュール:ランダム処理の定番
アプリ開発やちょっとした遊び心のある処理、
サンプルデータ生成に欠かせないのが random
モジュールです。
使用例として、
import random
print(random.random()) # 0.0〜1.0 の乱数(float)
print(random.randint(1, 10)) # 整数の乱数(1〜10)
print(random.choice(['A', 'B'])) # リストからランダムに選ぶ
print(random.sample(range(10), 3)) # 重複なしで3つ選ぶ
また、要素のシャッフルにも使えます。
lst = [1, 2, 3, 4, 5]
random.shuffle(lst)
print(lst)
ゲーム要素やテストデータ生成にとても便利です。
とくにテストデータとして、規則性のない複数データを
手動で作るのは非常にめんどくさいため、random
モジュールを利用することで効率化できます。
statisticsモジュール:統計処理
Pythonの statistics
モジュールは、
基本的な統計計算を簡単に実装できます。
使用例として、
import statistics
data = [65, 70, 75, 80, 85]
print(statistics.mean(data)) # 平均値 → 75.0
print(statistics.median(data)) # 中央値 → 75
print(statistics.stdev(data)) # 標準偏差
機械学習やAIでの業務で学習元データの統計などでmath
モジュールとあわせて押さえておくと便利です。
※本格的な機械学習ならpandas
の利用のほうが良いです。
第4章:Webからデータ取得
Pythonを使って情報収集や自動化をしていくうえで、
欠かせないのがインターネット上のデータを取得して使う
ということです。
たとえば、
- Webサイトの情報を取得して
ローカルに保存したい - APIを通してリアルタイムなデータ
(天気、ニュース、為替など)を取得したい - 外部にあるファイルをダウンロードしたい
といったケースです。
その第一歩として使えるのが、urllib.request
モジュールです。
これは標準ライブラリのひとつなので、
追加インストール不要で利用できます。
urllib.request
最も基本的な使い方は、指定したURLのコンテンツを取得して、
Pythonで処理するというものです。
import urllib.request
url = 'https://example.com'
response = urllib.request.urlopen(url)
html = response.read().decode('utf-8') # バイト型を文字列に変換
print(html)
このように、.read()
で
Webページの中身(HTMLなど)を取得し、.decode()
で文字列に変換できます。
外部ファイルをダウンロード
CSVや画像ファイルなどを
Webからダウンロードすることも可能です。
url = 'https://example.com/sample.csv'
urllib.request.urlretrieve(url, 'sample.csv') # 第2引数は保存先ファイル名
このようにするだけで、
指定URLのファイルをローカルに保存できます。
JSON APIと組み合わせ
最近は、多くのWebサービスが
JSON形式のAPI を提供しています。
urllib.request
でデータを取得し、json
モジュールと組み合わせることで、
リアルタイムな情報取得にもつながります。
import json
url = 'https://api.example.com/data'
with urllib.request.urlopen(url) as res:
data = json.load(res)
print(data)
このように、WebとPythonをつなげることができると、
外部データを自分のツールで活かす力が一気に広がります。
第5章:日付と時刻
日付や時刻を扱う場面は、
プログラミングをしていると本当に多く出てきます。
たとえば、
- 現在時刻の記録(ログファイル、保存名)
- 経過時間の測定(処理時間の計測)
- 特定日付までの残り日数の表示
(締切管理やカレンダー) - 日付データの整形や表示形式の変更
など、こうした操作をすべてカバーできるのが、
Python標準の datetime
モジュールです。
現在日時の取得
まずは一番基本となるのが、
現在の日時を取得することです。
from datetime import datetime
now = datetime.now()
print(now) # 例: 2025-08-06 20:15:30.123456
取得したオブジェクトには、
年・月・日・時・分・秒
といった情報がすべて含まれています。
print(now.year) # 2025
print(now.month) # 8
print(now.day) # 6
日付や時刻のフォーマット
strftime()
を使うと、日時を「見やすい文字列形式」に変換できます。
print(now.strftime('%Y-%m-%d')) # → 2025-08-06
print(now.strftime('%Y年%m月%d日')) # → 2025年08月06日
print(now.strftime('%H:%M:%S')) # → 20:15:30
逆に、文字列を日時型に変換したい場合は
strptime()
を使います。
dt = datetime.strptime('2025-08-06', '%Y-%m-%d')
print(dt.year) # 2025
日付の差分計算(timedelta)
2つの日付の間に何日差があるか
を計算することも簡単に可能です。
from datetime import timedelta
today = datetime.now()
future = today + timedelta(days=30)
print(future.strftime('%Y-%m-%d')) # 今日から30日後の日付
また、日付の差を使って残り日数を表示することもできます。
deadline = datetime(2025, 9, 1)
remaining = deadline - today
print(f"締切まであと{remaining.days}日")
時間だけ・日付だけを扱う
日付部分だけ使いたいときは date
クラス、
時刻だけ使いたいときは time
クラスもあります。
from datetime import date, time
today = date.today()
print(today) # 例: 2025-08-06
t = time(14, 30, 0)
print(t) # 14:30:00
第6章:コードの品質管理
プログラミングを学び始めたばかりだと、
コードが動けばそれでOKと思うことも多いと思います。
しかし、何度かコードを修正するうちに、
「前は動いていたのに、他の部分を直したらなぜかエラーが…」
という場面が必ず出てきます。
そこで重要になるのがテストの考え方です。
Pythonには標準で unittest
という
テスト用モジュールが用意されています。
これを使えば「コードが正しく動いているか」
を自動で検証できます。
副業や実務では、動くことだけでなく
壊れていないことも求められます。
この章では、そんなテストの基本を見ていきましょう。
unittest とは
unittest
はPythonの標準ライブラリに含まれる
単体テスト(ユニットテスト) 用のモジュールです。
特定の関数やクラスが期待通りに動作するかどうかを、
自動でチェックするために使います。
基本的なテストの書き方
テストコードは通常、以下のような流れで記述します。
unittest.TestCase
を継承したクラスを定義- テストしたい処理を
def test_◯◯
の形式で関数化 assertEqual()
などの
アサーション(検証)を使って結果を確認
テストコードの例として、
import unittest
# テスト対象の関数
def add(a, b):
return a + b
# テストケース
class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)
self.assertEqual(add(-1, 1), 0)
if __name__ == '__main__':
unittest.main()
このようにしておけば、将来add関数を修正しても、
間違った動作をすぐに検出できます。
よく使うアサーション一覧
アサーションメソッド | 意味 |
---|---|
assertEqual(a, b) | aとbが等しい |
assertNotEqual(a, b) | aとbが等しくない |
assertTrue(x) | xがTrueである |
assertFalse(x) | xがFalseである |
assertIsNone(x) | xがNoneである |
assertIn(a, b) | aがbに含まれている(bはリストなど) |
第7章:まとめ & 次回予告
今回の記事では、Python学習で
私が触れてきた便利な標準ライブラリを一気に紹介しました。
特別なライブラリをインストールしなくても、
学習するなら標準ライブラリを駆使することで
多くのことが実現可能です。
今回のまとめとして、
- ファイル操作
open()
とwith
文で、読み書き処理
- JSON処理
json.load()
やjson.dump()
で、
APIや設定ファイルの扱いがスムーズ- 数学・統計・乱数
math
,random
,statistics
で、
数値処理
- Web通信
urllib.request
でWebデータ取得
- 日付と時刻
datetime
で処理時間の測定や
スケジュール管理
- テストの基本
unittest
でコードの品質を確認
どれも、これからPythonで副業案件をこなす上で
武器になる知識です。
次回は、Pythonの例外処理(エラー対応)に
ついて学んでいきます。
try
〜except
の基本構文else
やfinally
の活用方法- よく出るエラーの種類と対処法
- 自作例外の定義
プログラムを「落とさずに動かし続ける」ために、
欠かせないスキルです。
▶次回の記事はこちら:
-
-
Python入門:例外と例外対応でプログラムを安全に!
2025/8/23