私は、UTF-8およびUTF-16エンコーディングのファイルを開くことができなければならないPythonツールに取り組んでいます。Python 3.2では、次のコードを使用してUTF-8を使用してファイルを開こうとし、Unicodeエラーが発生した場合は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
ドキュメントで、Python2.xにはキーワードopen()
がないことがわかります。encoding
これを回避して、コードをPython 2.xと互換性のあるものにする方法はありますか?