在Python中将Unicode UTF-8数据写入文件的问题
我在我的Python程序中写入unicode到文件时遇到了一些问题。
这是用来“保存”文件的代码:
def file_save(self):
# save changes to existing file
if self.filename and isfile(self.filename):
self.watcher.removePath(self.filename)
s = codecs.open(self.filename,'w','utf-8')
s.write(unicode(self.ui.editor_window.toPlainText()))
s.close()
self.ui.button_save.setEnabled(False)
self.watcher.addPath(self.filename)
# save a new file
else:
fd = QtGui.QFileDialog(self)
newfile = fd.getSaveFileName()
if newfile:
s = codecs.open(newfile,'w','utf-8')
s.write(unicode(self.ui.editor_window.toPlainText()))
s.close()
self.ui.button_save.setEnabled(False)
当我调用这个方法时,我收到了这个错误信息:
line 113, in file_save
s.write(unicode(self.ui.editor_window.toPlainText()))
NameError: global name 'unicode' is not defined
我正在使用Python 3.2,但似乎找不到问题出在哪里。
1 个回答
5
在3.x版本中,Unicode的支持得到了“修复”。普通的字符串现在都是以Unicode格式存储的,而且普通的 open()
函数增加了一个 encoding
参数,这样就不再需要使用 codecs.open()
了。
s = open(self.filename, 'w', encoding='utf-8')
s.write(self.ui.editor_window.toPlainText())