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文字列 を指定するための リテラル です。