0

wxpython のテキスト エディターは、保存されたファイルを開くことができません。ファイルはテキストファイルとして保存されますが、開いているときに次のエラーが表示されます

Error opening file
'charmap' codec can't decode byte 0x8d in position 5: charcter maps to <undefined>

ファイルを開くために使用されるコードを以下に示します。

def DoOpenFile(self):
        #wcd = 'All files (*)|*|Editor files (*.ef)|*.ef|'
        wcd='Text files(*.txt)|*.txt|Plain Text files (*.txt)|*.txt'
        dir = os.getcwd()
        open_dlg = wx.FileDialog(self, message='Choose a file', defaultDir=dir, defaultFile='',
                        wildcard=wcd, style=wx.OPEN|wx.CHANGE_DIR)
        if open_dlg.ShowModal() == wx.ID_OK:
            path = open_dlg.GetPath()

            try:
                file = open(path, 'r')
                text = file.read()
                file.close()
                if self.text.GetLastPosition():
                    self.text.Clear()
                self.text.WriteText(text)
                self.last_name_saved = path
                self.statusbar.SetStatusText('', 1)
                self.modify = False
                self.SetTitle(window_title + path)

            except IOError, error:
                dlg = wx.MessageDialog(self, 'Error opening file' + str(error))
                dlg.ShowModal()

            except UnicodeDecodeError, error:
                dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error))
                dlg.ShowModal()

        open_dlg.Destroy()
4

1 に答える 1

1

コードを次のように変更します

 file = codecs.open(path, 'r',encoding='utf-8')
于 2013-06-12T05:39:58.770 に答える