もくじ
PythonでWindowsのファイルパスを指定する際に発生しやすいエラーの原因と、エラーを防ぐ3つの方法(raw文字列・バックスラッシュ2重・スラッシュ利用)を初心者にもわかりやすく解説します。
os.pathやpathlibの活用例、Q&A、コピペ用サンプルも掲載しています。
なぜWindowsパスでエラーが起きるのか?
Windowsのパスは「C:\Users\username\Desktop\data.csv
」のようにバックスラッシュ(\)を使います。
※環境によっては、「\
(バックスラッシュ)」が「¥
(円記号)」で表示されますが意味は同じです。
Pythonでは「\」はエスケープシーケンス(改行\n
やタブ\t
など)として使用されます。
そのため'C:\new\test.txt'
のように書くと、\n
や\t
が特殊な意味になり、意図しない動作やエラーになります。
# 例:エラーになるパターン fp = 'C:\new\test.txt' with open(fp) as f: print(f.read()) # → FileNotFoundErrorやSyntaxWarningが出ることも
エラーを防ぐ3つのパス指定方法
raw文字列(r'...')を使う
fp = r'C:\new\test.txt'
先頭にr
を付けることで、バックスラッシュがそのまま使えます。
バックスラッシュを2回重ねる
fp = 'C:\\new\\test.txt'
1つの「\」を「\\」と2回書くことでエスケープを回避します。
スラッシュ(/)を使う
fp = 'C:/new/test.txt'
Windowsでもスラッシュ(/)でパス指定が可能です。
おすすめ:os.pathやpathlibの活用
パスの結合や操作には、標準ライブラリのos.path
やpathlib
を使うと安全で便利です。
import os fp = os.path.join('C:\\Users', 'username', 'Desktop', 'data.csv') # または from pathlib import Path fp = Path('C:/Users/username/Desktop/data.csv') print(fp)
よくある質問(Q&A)
Q. 円記号(¥)とバックスラッシュ(\)の違いは?
A. 日本語環境では「\」が「¥」に見えることがありますが、どちらも同じ文字です。
Q. どの方法が一番おすすめ?
A. pathlib
を使う方法が、可読性・安全性ともにおすすめです。
コピペで使えるサンプル
【実装コード】raw文字列
Copyをクリックするとコピーできます。
fp = r'C:\Users\username\Desktop\data.csv'
【実装コード】バックスラッシュ2重
Copyをクリックするとコピーできます。
fp = 'C:\\Users\\username\\Desktop\\data.csv'
【実装コード】スラッシュ
Copyをクリックするとコピーできます。
fp = 'C:/Users/username/Desktop/data.csv'
【実装コード】 pathlib(推奨)
Copyをクリックするとコピーできます。
from pathlib import Path
fp = Path('C:/Users/username/Desktop/data.csv')