1. ホーム
  2. python

[解決済み] "Unicode Error "unicodeescape" codec can't decode bytes... Python 3でテキストファイルを開けない [重複]...

2022-03-14 19:16:36

質問

Windows 7 マシンで Python 3.1 を使用しています。ロシア語がデフォルトのシステム言語であり、utf-8がデフォルトのエンコーディングです。

の答えを見てみると 前の質問 コーデックモジュールを使用することで、私は少し幸運を手に入れることができました。以下はその例です。

>>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1)

>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1)

>>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1)

>>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#44>, line 1)

最後に思いついたのは、Windowsが"users"フォルダなどいくつかのフォルダをロシア語に翻訳していることが原因かもしれないと思い(それでも"users"と入力すれば正しいパスになります)、Python31フォルダで試したことです。それでもダメでした。何かアイデアはありますか?

解決方法は?

この問題は文字列

"C:\Users\Eric\Desktop\beeline.txt"

ここです。 \U"C:\Users ... は、次のような 8 文字の Unicode エスケープを開始します。 \U00014321 . あなたのコードでは、エスケープの後に文字's'が続いていますが、これは無効です。

すべてのバックスラッシュを重複させる必要があるかです。

"C:\\Users\\Eric\\Desktop\\beeline.txt"

または、文字列の前に r (生の文字列を生成するため)。

r"C:\Users\Eric\Desktop\beeline.txt"