Как прочесть файл в utf-8 в Python?
Дык а зачем BOM-символ удалять-то?  Зачем лишняя ручная работа? Читайте с ним:import io
import chardet
import os
import codecs

filename = 'test_file.txt'

bytes = min(32, os.path.getsize(filename))
raw = open(filename, 'rb').read(bytes)

if raw.startswith(codecs.BOM_UTF8):
    encoding = 'utf-8-sig'
else:
    result = chardet.detect(raw)
    encoding = result['encoding']

infile = io.open(filename, 'r', encoding=encoding)
data = infile.read()
infile.close()

print(data)
# -*- coding: utf-8 -*-
Указали в начале кода?