pathlib でクロスプラットフォーム対応
ここでは pathlib を使って「クロスプラットフォーム対応」する実践例 を紹介します。WindowsでもmacOS/Linuxでも同じコードで動くのがポイントです。
1. 基本の使い方
pathlib.Path はOSに応じて自動的に正しい区切り文字(Windowsなら \、macOS/Linuxなら /)を使ってくれます。
from pathlib import Path
# ホームディレクトリを取得
home = Path.home()
print(home)
# Windows例: C:\Users\YourName
# macOS/Linux例: /Users/yourname
Python2. ファイルパスを組み立てる
/ 演算子でパスをつなげられるのが便利です。
from pathlib import Path
# ホームディレクトリ配下に test フォルダを作り、その中の data.txt を指定
path = Path.home() / "test" / "data.txt"
print(path)
# Windows: C:\Users\YourName\test\data.txt
# macOS/Linux: /Users/yourname/test/data.txt
Python👉 OSごとに書き分ける必要なし!
3. ファイル操作の例
ファイルの存在確認
if path.exists():
print("ファイルが存在します")
else:
print("ファイルは存在しません")
Pythonファイルの読み込み
if path.exists():
text = path.read_text(encoding="utf-8")
print(text)
Pythonファイルの書き込み
path.write_text("Hello pathlib!", encoding="utf-8")
Python4. ディレクトリ操作
folder = Path.home() / "test"
# フォルダがなければ作成
folder.mkdir(exist_ok=True)
# 中のファイル一覧を取得
for f in folder.iterdir():
print(f)
Python5. 実践例:クロスプラットフォームでログ保存
from pathlib import Path
from datetime import datetime
# ホームディレクトリに logs フォルダを作成
log_dir = Path.home() / "logs"
log_dir.mkdir(exist_ok=True)
# 日付ごとのログファイル
log_file = log_dir / f"log_{datetime.now().date()}.txt"
# ログを書き込む
with log_file.open("a", encoding="utf-8") as f:
f.write(f"[{datetime.now()}] アプリを起動しました\n")
print(f"ログを保存しました: {log_file}")
Python👉 WindowsでもmacOS/Linuxでも同じコードで動作します。
まとめ
pathlibを使えば OSごとのパス区切りを意識せずに書ける/演算子で直感的にパスを組み立てられる- ファイル・フォルダ操作もメソッドで簡単に扱える
- 実用的には「ログ保存」「設定ファイルの読み書き」などで大活躍

