Кодек "Unicode Error" unicodeescape не может декодировать байты... не удается открыть текстовые файлы в Python 3
Я использую python 3.1, на машинах windows 7. Русский язык является системным языком по умолчанию, а utf-8-кодировкой по умолчанию.
глядя на ответ на предыдущий вопрос, я пытаюсь использовать модуль "кодеки", чтобы дать мне немного удачи. Вот несколько примеров:
>>> g = codecs.open("C:UsersEricDesktopbeeline.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:UsersEricDesktopSite.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:Python31Notes.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:UsersEricDesktopSite.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. И все же не повезло. Есть идеи?
11 ответов:
проблема со строкой
"C:\Users\Eric\Desktop\beeline.txt"здесь
\Uначинается в восемь символов Unicode бегства, такие как '\U00014321`. В вашем коде за экранированием следует символ "s", который является недопустимым.вам либо нужно дублировать все обратные косые черты, либо префикс строки с
r(для получения необработанной строки).
типичная ошибка в Windows, потому что каталог пользователя по умолчанию
C:\user\<your_user>, поэтому, когда вы хотите использовать этот путь в качестве строкового параметра в функцию Python, вы получаете ошибку Unicode, просто потому, что\u- это Unicode escape. Любой символ не числовой после этого выдает ошибку.чтобы решить эту проблему, просто удвоить обратную косую черту:
C:\\user\\<\your_user>...
префикс с 'r' работает очень хорошо, но он должен быть в правильном синтаксисе. Например:
passwordFile = open(r'''C:\Users\Bob\SecretPasswordFile.txt''')нет необходимости в \ \ [двойные обратные косые черты] здесь-поддерживает читаемость и хорошо работает.
см. документ openpyxl, вы можете сделать изменения следующим образом.
from openpyxl import Workbook from openpyxl.drawing.image import Image wb = Workbook() ws = wb.active ws['A1'] = 'Insert a xxx.PNG' # Reload an image img = Image(**r**'x:\xxx\xxx\xxx.png') # Insert to worksheet and anchor next to cells ws.add_image(img, 'A2') wb.save(**r**'x:\xxx\xxx.xlsx')
С Python 3 у меня была эта проблема:
self.path = 'T:\PythonScripts\Projects\Utilities'произвел эту ошибку:
self.path = 'T:\PythonScripts\Projects\Utilities' ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 25-26: truncated \UXXXXXXXX escapeисправление, которое сработало:
self.path = r'T:\PythonScripts\Projects\Utilities'похоже, что "\U "создавал ошибку, а "r", предшествующий строке, отключает восьмизначный Unicode escape (для необработанной строки), который не удался. (Это немного чрезмерное упрощение, но оно работает, если вы не заботитесь о unicode)
надеюсь, это поможет кому-то
у меня была такая же ошибка в Python 3.2.
у меня есть скрипт для отправки email и:
csv.reader(open('work_dir\uslugi1.csv', newline='', encoding='utf-8'))когда я удаляю первый символ в файле
uslugi1.csvработает нормально.
path = pd.read_csv(**'C:\Users\mravi\Desktop\filename'**)ошибка из-за пути, который упоминается
добавить 'r' перед путем
path = pd.read_csv(**r'C:\Users\mravi\Desktop\filename'**)это будет работать нормально.
У меня была эта ошибка. У меня есть основной скрипт python, который вызывает функции из другого, 2-го, скрипта python. В конце первого скрипта у меня был блок комментариев, обозначенный
''' '''. Я получал эту ошибку из-за этого блока кода комментария. Я повторил ошибку несколько раз, как только я нашел его, чтобы убедиться, что это была ошибка, и это было. Я до сих пор не знаю, почему.
Comments