Как открыть файлы UTF-16 в Python 2.x?

Я работаю над инструментом 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?

13
задан stalepretzel 7 April 2012 в 21:36
поделиться