目次
使用環境
- エディション:Windows 10 Pro
- バージョン:20H2
背景
Pythonで作業している際に、glob
関数を使ってファイルのパスを取得しようとしました。
しかし、パスをコピペしたところ、次のエラーが発生しました。
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
そこで今回は、このエラーの原因と、解決方法について学びました。
原因:「\」が問題を引き起こしている
パスの中身をよく見ると、
例えば以下のようになっていました。
C:\Users\mori\デスクトップ
このように、パスの区切り文字として「\(バックスラッシュ)」が使用されています。
しかし、Pythonでは「\」は**特殊な意味(エスケープシーケンス)**を持つため、
そのままでは正しく認識されず、今回のようなエラーが発生してしまいます。
解決策:「\」を「/」に置き換える
このエラーを回避するには、パス内のすべてのバックスラッシュ\
を、
スラッシュ/
に置き換えます。
例えば、先ほどのパスは次のように修正します。
C:/Users/mori/デスクトップ
このように書き換えることで、エラーは解消され、glob
関数も正しく動作するようになりました。
まとめ
Pythonでファイルパスを指定する際、
Windows標準のパス表記(バックスラッシュ\
)をそのまま使うと、
「unicodeescapeエラー」が発生する場合があります。
この問題を避けるためには、
バックスラッシュ\
をスラッシュ/
に置き換える
というシンプルな対処方法を覚えておくと便利です。
今回のエラーに悩まされている方の参考になれば幸いです。
最後までご覧いただき、誠にありがとうございました。