では 「ファイルパス × 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)
Python2. 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)
Python5. 応用テクニック: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)
Pythonos.nameを使うと、スクリプトをOS間で移植しやすくなる- raw文字列は Windows のパスで特に有効
💡 ポイントまとめ
- Windowsでは
\があるので raw文字列が便利 - macOS / Linux では
/なので通常文字列でもOK - raw文字列は長いパスや正規表現でも見やすく安全
- 末尾に
\を置きたいときは連結で回避

