当我在python中运行这个简单的程序时,我在“for line in file”之后得到一个ascii错误。我尝试了很多改变但没有成功。为什么我会遇到这个问题?
代码:
flashcards = {}
def Gaelic():
file = open ("gaelic_flashcard_mode.txt", "r")
for line in file:
print("clear4")
line1 = line.rstrip().split("=")
key = line1[0]
trans = line1[1]
PoS = line1[2]
flashcards[key] = [trans, PoS]
print(flashcards)
正在读入的文本文件(gaelic_flashcard_mode.txt):
I=mé=(pron) (emphatic)
I=mise=(n/a)
you=tú=(pron) (subject)
you=tusa=(emphatic)
y'all=sibh=(plural)
y'all=sibhse=(emphatic)
he=sé=(pron)
he=é=(n/a)
he=seisean=(emphatic)
he=eisean=(n/a)
she=sí=(pron)
she=í=(n/a)
she=sise=(emphatic)
she=ise=(emphatic)
him=é=(pron)
him=eisean=(emphatic)
her=í=(pron)
her=ise=(emphatic)
her=a=(adj)
答案 0 :(得分:2)
您使用的是Python 3.X吗?您的打印陈述似乎表明了这一点。
使用encoding
的{{1}}参数指定源文件的编码。
此外,由于您有多个“键”,因此字典无法容纳open
,him
等各种版本,因此您可能需要一个列表:
her
输出:
def Gaelic():
with open('gaelic_flashcard_mode.txt','r',encoding='utf8') as f:
return [tuple(line.rstrip().split('=')) for line in f]
print(Gaelic())
答案 1 :(得分:1)
因为您正在使用open()
打开非ASCII文本文件。请改用codecs.open()
,并为其传递适当的编码。并read this。