社内SEの話

日々起きたことの記録用

【Python】Windowsでunicodeescape' codec can't decode bytes in position 2-3_ truncated _UXXXXXXXX escapeが発生した時

↓プログラミングで副業を考えたらこちら↓

Windowsでunicodeescape' codec can't decode bytes in position 2-3 truncated UXXXXXXXX escapeが発生した時の対処方法

エラーが発生

今回はxlsファイルをxlsxに変換するのが目的のコードを作成しています。

import pyexcel
p.save_book_as(file_name='C:\Users\user\Desktop\StockFinance\data\data_j.xls',dest_file_name='C:\Users\user\Desktop\StockFinance\data\data_j.xlsx')

Python _UXXXXXXXX escape

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

原因はパスの先頭にrがないから

よくやってしまうエラーです

対処方法

パスの冒頭にrを追加します

Python _UXXXXXXXX escape

p.save_book_as(file_name=r'C:\Users\user\Desktop\StockFinance\data\data_j.xls',dest_file_name=r'C:\Users\user\Desktop\StockFinance\data\data_j.xlsx')

なぜか

docs.python.org

公式で解説されている通り文字列中のエスケープ文字列をその通りに解釈して返すため、パスの形の文字列ではなくなってしまいます。

それを回避するための作法として文字列の先頭にrを追加します