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

Python
スポンサーリンク

では 「ファイルパス × raw文字列」実践編 を、Windows と macOS の両方に対応する形で、初心者向けに詳しく解説します。

Pythonでファイルパスを扱うとき、\ が混ざるとエスケープシーケンスとして誤解されることがあります。
Windows と macOS でパスの書き方が少し異なるので、まとめて解説します。


1. Windowsのファイルパス

通常の文字列で書く場合

path = "C:\\Users\\Python\\Documents\\file.txt"
print(path)
Python

出力:

C:\Users\Python\Documents\file.txt
  • \ はエスケープ文字になるため、\\ と二重に書く必要があります。

raw文字列を使う場合

path = r"C:\Users\Python\Documents\file.txt"
print(path)
Python

出力:

C:\Users\Python\Documents\file.txt
  • r をつけるだけで、\ をそのまま書けます。
  • 長いパスでも読みやすく、ミスが減ります。

注意点

  • raw文字列の末尾に \ は書けません:
# NG
path = r"C:\Users\Python\Documents\"
Python

✅ 解決方法:

path = r"C:\Users\Python\Documents" + "\\"
print(path)
Python

2. macOS / Linux のファイルパス

  • macOS や Linux ではパスの区切りに / を使うので、通常文字列でも raw文字列でも問題なし。
path = "/Users/python/Documents/file.txt"
print(path)
Python

出力:

/Users/python/Documents/file.txt
  • raw文字列は必要ないですが、Windows用のコードと統一する場合は使えます。

3. 実践例:ファイル読み込み

# Windows用 raw文字列
file_path_win = r"C:\Users\Python\Documents\sample.txt"

with open(file_path_win, "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

# macOS用(raw文字列は任意)
file_path_mac = "/Users/python/Documents/sample.txt"

with open(file_path_mac, "r", encoding="utf-8") as f:
    content = f.read()
    print(content)
Python
  • Windowsでは \ の扱いに注意
  • macOSでは / なのでエスケープ不要

4

練習問題

問題1

Windowsのファイルパス D:\Data\Projects\test.txt を raw文字列で変数 path に格納し、printで表示してください。

解答例

path = r"D:\Data\Projects\test.txt"
print(path)
Python

問題2

Windowsのフォルダパス C:\Users\Python\Documents\ の最後の \ も含めて表示してください。

解答例

path = r"C:\Users\Python\Documents" + "\\"
print(path)
Python

問題3

macOSのファイルパス /Users/python/Documents/file.txt を print で表示してください。

解答例

path = "/Users/python/Documents/file.txt"
print(path)
Python

5. 応用テクニック:OSに応じてパスを切り替える

import os

if os.name == "nt":  # Windows
    path = r"C:\Users\Python\Documents\file.txt"
else:  # macOS / Linux
    path = "/Users/python/Documents/file.txt"

print(path)
Python
  • os.name を使うと、スクリプトをOS間で移植しやすくなる
  • raw文字列は Windows のパスで特に有効

💡 ポイントまとめ

  1. Windowsでは \ があるので raw文字列が便利
  2. macOS / Linux では / なので通常文字列でもOK
  3. raw文字列は長いパスや正規表現でも見やすく安全
  4. 末尾に \ を置きたいときは連結で回避
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました