ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【python】unicode error “unicodeescape”というエラーの回避方法

windows 環境で python のプログラムを作成していたら unicode error “unicodeescape”というエラーに遭遇しました。

症状

python スクリプトを実行すると、以下のようなエラーが表示されます。

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

環境

  • OS: windows 10

コード

エラーの場所

5行目の「binary_location」のパスの指定部分でエラーが発生したようでした。。。

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.binary_location = 'C:\Users\Administrator\Desktop\geckodriver'

原因

パスなどの文字列に“\”が使われるとその文字列がエスケープシーケンスとしてみなされてエラーになるようです。
Windows の環境では“¥”と文字の組み合わせでエスケープシーケンスを表すようで、今回はパスの指定が問題になったようでした。

回避方法

今回は raw 文字列を使って問題を回避します。
以下のように r または R を文字列(パス)の先頭に付けます。

options.binary_location = r'C:\Users\Administrator\Desktop\geckodriver'

補足

raw 文字列

raw 文字列は、バックスラッシュ( Windows 環境では円記号)をエスケープ用の文字ではなく単なる文字として扱う記述です。
r は raw文字列 を指定するための リテラル です。