#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")
Есть ли какой-то модуль, который заменяет «открыть», чтобы сделать это, со всеми кодировками, которые имеют спецификацию?