Возникает ошибка кодировки utf-8

Учился работать с файлами и тут такое, нормальное решение найти не могу. С некоторых позиций всё нормально, а с некоторых нет. Возникает ошибка:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte

Файл пробовал удалять, помогает только замена кодировки на cp1251. Подскажите пожалуйста, что я делаю не так.

a1 = [1,2,3,4,5]
a1 = map(str,a1)
str1 = ' '.join(a1)
with open('1.txt','w',encoding='utf-8')as file1 :
    file1.write('рак\nкамень ')
    file1.write(str1)
with open('1.txt','r',encoding='utf-8' )as file1 :
    print(file1.tell())
    file1.seek(3)
    print(file1.tell())
    a3 = file1.read()
    print(a3)

Ответы (1 шт):

Автор решения: Ivan Shatsky

Метод seek() принимает в качестве аргумента смещение в байтах. Вызвав seek(3), вы сместили позицию в файле на 3 байта вперёд. В кодировке UTF-8 кириллические буквы занимают по два байта:

    р          а          к
0xD1 0x80  0xD0 0xB0  0xD0 0xBA
                ^ позиция в файле после seek(3)

Валидный символ в кодировке UTF-8 не может начинаться с байта 0xB0, отсюда и ошибка, которую вы получаете.

→ Ссылка