Обнаружение кодирования в Python3 при наличии спецификации

#python-3.x

#python-3.x

Вопрос:

Для начала, я знаю, что вы не всегда можете определить кодировку, это не предмет вопроса. Может ли Python определить кодировку при открытии файла, когда есть спецификация, указывающая кодировку?

У меня есть коллекция файлов. Некоторые из них написаны в формате UTF-16 (поэтому у них есть спецификация, говорящая об этом), а некоторые написаны латиницей 1. Давайте проигнорируем крайний случай файлов latin-1, которые по какой-то причине начинаются с тех же символов, что и спецификация UTF-16. Я хочу, чтобы при открытии файла я искал спецификацию. Если таковой имеется, автоматически откройте файл, используя кодировку, связанную со спецификацией. Если спецификации нет, откройте с помощью latin 1.

Вот мой обходной путь :

 with open(filename,mode="rb") as f:
    text=f.readlines()
    text=b''.join(text)
    if text[:2]==(b'xffxfe'):
        text=text.decode("utf-16")
    else:
        text=text.decode("iso-8859-1")
 

Есть ли какой-то модуль, который заменяет «открыть», чтобы сделать это, со всеми кодировками, которые имеют спецификацию?