2017-09-03 58 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