Я работаю над инструментом Python, который должен иметь возможность открывать файлы кодировок UTF-8 и UTF-16. В Python 3.2 я использую следующий код, чтобы попытаться открыть файл с помощью UTF-8, а затем попробовать его с UTF-16, если есть ошибка Unicode:
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 совместимым?