Я использую Python 3.1 на машине с Windows 7. Русский язык является системным языком по умолчанию, а кодировка по умолчанию - 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 переводит несколько папок, таких как папка пользователей, на русский язык (хотя ввод пользователей по-прежнему является правильным путем), поэтому я попробовал это в папке Python31. Тем не менее, не повезло. Любые идеи?
\uактивен, и поэтому строковый литерал'\ufoo'вызываетSyntaxError. В Python 2 строковые литералы по умолчанию не являются строками Unicode, поэтому\uнеактивен, и, следовательно, строковый литерал'\ufoo'не вызывает никаких ошибок. Напротив, строковый литералb'\ufoo'не вызывает ошибку в Python 3, а строковый литералu'\ufoo'действительно вызывает ошибку в Python 2. - person Ioannis Filippidis   schedule 08.04.2021