我正在嘗試創建一個小程序,讀取兩個故事的內容,Alice in Wonderland & Moby Dick,然後計算每個單詞中找到「the」的次數故事。打開文本文件時出現Unicode錯誤 - Geany
但是,我得到Geany文本編輯器打開文件的問題。到目前爲止,我一直在創建和使用我自己的小文本文件。
with open('alice_test.txt') as a_file:
contents = a_file.readlines()
print(contents)
我得到以下錯誤:
Traceback (most recent call last):
File "add_cats_dogs.py", line 50, in <module>
print(contents)
File "C:\Users\USER\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp437.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2018' in position 279: character maps to <undefined>
正如我所說的,沒有問題,經歷了任何小自制的文本文件。
奇怪的是,當我在Python IDLE中優先考慮上述代碼時,即使將UTF-8之間的文本文件的編碼更改爲ANSII,也沒有問題。
我試着編碼爲UTF-8和ANSII的文本文件,我也檢查以確保Geany的默認編碼是UTF-8(也試過不使用默認編碼),以及使用和不使用固定編碼時打開非Unicode文件。
我每次都得到相同的錯誤。該文本文件來自gutenberg.org,我嘗試使用另一個文件,並得到同樣的問題。
我知道它必須是Geany和文本文件之間的某種問題,但我無法弄清楚是什麼。
編輯:我發現了一種修復。 這是給我的問題的文本:https://www.gutenberg.org/files/11/11-0.txt 這裏是我可以毫無問題地使用的文本:http://www.textfiles.com/etext/FICTION/alice13a.txt 最重要的是用UTF-8編碼,最下面的一個編碼在windows-1252中。我會想到相反的事實,但無論出於何種原因,UTF-8編碼似乎是造成這個問題的原因。
我認爲你可以找到解決方案http://stackoverflow.com/questions/14630288/unicodeencodeerror-charmap-codec-cant-encode-character-maps-to-undefined – Warager
其實已經看過一些這些,不幸的是,我的Python技能是非常基本的,所以試圖實現他們的建議是非常混亂,似乎沒有幫助。 – Cyanidies
打開文件時沒有錯誤,只是由控制檯(cp437)使用的編碼無法編碼該字符。你是否真的需要打印文本以讀取文件和計算單詞? – Goyo