@danis_2014

Как исправить ошибку с кодировкой?

Ввожу такой код:
posts = [eval(x) for x in open('posts1.txt', mode='r', encoding='utf-8')]

Возникает ошибка:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <listcomp>
  File "<string>", line 1
    \ufeff
    ^
SyntaxError: invalid character in identifier

Но в файле ничего нет (ни пробелов, ни переносов строк)d12ff14b62a64b5593076479ec551c20.png
Так же после исполнения кода:
f = open('posts1.txt', encoding='utf-8')
for l in f:
    print(l)

Выдает ошибку:
File "<stdin>", line 2, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character '\ufeff' in position 0: ordinal not in range(128)

На одном из форумов прочитал, что ошибка связана с кодировкой. Но # -*- coding: utf-8 -*- ничего не дало.
Что это значит? Как это справить?
  • Вопрос задан
  • 802 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вам только кажется, что в файле ничего нет, на самом деле там BOM.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sly_tom_cat
@Sly_tom_cat
.
Как бы черным поанглийски написано:
SyntaxError: invalid character in identifier

У вас там в файле неизвестно что - а вы его в eval засовываете построчно, а eval-у не нравится идентификатор, который с обратной косой начинается.
Для начала хотя-бы покажите что в файле.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы