Python | 「ファイルパス × raw文字列」実践編

Python
スポンサーリンク

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
Python

2. ファイルパスを組み立てる

/ 演算子でパスをつなげられるのが便利です。

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")
Python

4. ディレクトリ操作

folder = Path.home() / "test"

# フォルダがなければ作成
folder.mkdir(exist_ok=True)

# 中のファイル一覧を取得
for f in folder.iterdir():
    print(f)
Python

5. 実践例:クロスプラットフォームでログ保存

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ごとのパス区切りを意識せずに書ける
  • / 演算子で直感的にパスを組み立てられる
  • ファイル・フォルダ操作もメソッドで簡単に扱える
  • 実用的には「ログ保存」「設定ファイルの読み書き」などで大活躍
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました