2017-09-03 59 views
0

读取文件时,当我正在学习Python和跨越以下错误传来:回溯错误蟒蛇

Traceback (most recent call last):
File "file.py", line 22, in module

for word in file.read():

File "C:\Users\user\AppData\Local\Continuum\Anaconda3\lib\encodings\cp1252.py", line 23, in decode

return codecs.charmap_decode(input,self.errors,decoding_table)[0]

UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 6552: character maps to undefined

这是我的代码:

file=open('xyz.txt') 

dict={} 

ignorelist=set(line.strip() for line in open('ignorelist')) 

for word in file.read(): 
    word = word.replace(".","") 
    word = word.replace(",","") 

    if word not in ignorelist: 
     if word not in dict: 
      dict[word] = 1 
     else: 
      dict[word] += 1 

d=collections.Counter(dict) 

for word, count in d.most_common(10): 
    print(word, ": ", count) 

没有人知道为什么会这样?

在此先感谢!

+0

看起来像它试图将字符为CP1252解码及逾期不改正的那 –

+0

也许这会帮助你调试问题http://www.i18nqa.com/debug/bug-double-conversion.html –

回答

2

你能尝试这种变化,通过指定编码:

file=open('xyz.txt', encoding='utf8') 

(该ignorelist文件可能需要太)

+0

谢谢,这工作! – dzitrus