スキルアップ

Python入門:学習用で覚えたいライブラリについて

はじめに

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のまとめ処理やログファイルの集計など
を行うような場面では、これらのコードの考え方が役立ちます。


補足:osglob を組み合わせる

# ディレクトリを作り、特定のファイルを移動する
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の例外処理(エラー対応)に
ついて学んでいきます。

  • tryexceptの基本構文
  • elsefinally の活用方法
  • よく出るエラーの種類と対処法
  • 自作例外の定義

プログラムを「落とさずに動かし続ける」ために、
欠かせないスキルです。

▶次回の記事はこちら:

-スキルアップ