Я работаю над инструментом Python, который должен уметь открывать файлы в кодировке UTF-8 и UTF-16. В Python 3.2 я использую следующий код, чтобы попытаться открыть файл с использованием UTF-8, а затем попробовать его с UTF-16, если есть ошибка юникода,:
def readGridFromPath(self, filepath):
try:
self.readGridFromFile(open(filepath,'r',encoding='utf-8'))
except UnicodeDecodeError:
self.readGridFromFile(open(filepath,'r',encoding='utf-16'))
(readGridFromFile
будет либо выполняться до завершения, либо поднимать UnicodeDecodeError
.)
Однако, когда я запускаю этот код в Python 2.x, я получаю:
TypeError: 'encoding' is an invalid keyword argument for this function
Я вижу в документации, что Python 2.x open()
не имеет ключевого слова encoding
. Есть ли способ обойти это, что позволит мне сделать мой код совместимым с Python 2.x?