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')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
原因はパスの先頭にrがないから
よくやってしまうエラーです
対処方法
パスの冒頭にrを追加します
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')
なぜか
公式で解説されている通り文字列中のエスケープ文字列をその通りに解釈して返すため、パスの形の文字列ではなくなってしまいます。
それを回避するための作法として文字列の先頭にrを追加します