我对编程术语不是很熟悉,请多多包涵。
我正在制作一个语言程序,它必须能够保存和读取包含 utf-8 字符的文件文本。
我在用 pickle
WORDS = [['eat','manger','v'],['drink','boire','v'],
["cake",'le gateau','n'],['coffee','le café','n']]
wordDatabase = open('wordsForProgram.txt','wb')
pickle.dump(WORDS,wordDatabase)
wordDatabase.close()
inFile = open('wordsForProgram.txt','rb')
newList = pickle.load(inFile)
print(newList)
它打印出:
[['eat', 'manger', 'v'],
['drink', 'boire', 'v'],
['cake', 'le gateau', 'n'],
['coffee', 'le café', 'n']]
脚本中的列表还将“le café”更改为“le cafĂ©”。当我将其更改回来时,它会再次运行,直到我关闭并重新打开脚本。
谢谢!
请您参考如下方法:
您的文件顶部是否有# -*- coding: utf-8 -*-?
# -*- coding: utf-8 -*-
import pickle
WORDS = [['eat','manger','v'],['drink','boire','v'],
["cake",'le gateau','n'],['coffee','le café','n']]
wordDatabase = open('wordsForProgram.txt','wb')
pickle.dump(WORDS,wordDatabase)
wordDatabase.close()
inFile = open('wordsForProgram.txt','rb')
newList = pickle.load(inFile)
for i in newList:
for j in i:
print j
WORDS 和 newList 的输出相同:
eat
manger
v
drink
boire
v
cake
le gateau
n
coffee
le café
n
您也可以尝试使用编解码器模块:
# -*- coding: utf-8 -*-
import pickle
import codecs
WORDS = [['eat','manger','v'],['drink','boire','v'],
["cake",'le gateau','n'],['coffee','le café','n']]
wordDatabase = codecs.open('wordsForProgram.txt', 'w', 'utf-8')
pickle.dump(WORDS,wordDatabase)
wordDatabase.close()
inFile = codecs.open('wordsForProgram.txt','rb')
newList = pickle.load(inFile)
for i in newList:
for j in i:
print j
