2016-12-01 5 views
2

Ich muss eine Textdatei in Tamil (UTF-8 codiert) analysieren. Ich benutze nltk Paket von Python auf der Schnittstelle IDLE. wenn ich versuche, die Textdatei auf der Schnittstelle zu lesen, ist das der Fehler, den ich bekomme. Wie vermeide ich das?So lesen Sie eine UTF-8-codierte Textdatei mit Python

corpus = open('C:\\Users\\Customer\\Desktop\\DISSERTATION\\ettuthokai.txt').read() 

Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    corpus = open('C:\\Users\\Customer\\Desktop\\DISSERTATION\\ettuthokai.txt').read() 
    File "C:\Users\Customer\AppData\Local\Programs\Python\Python35-32\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 0x8d in position 33: character maps to <undefined> 
+0

Ich habe Ihre Frage nicht vollständig gelesen, aber ... Wenn Sie eine Last von Bytes haben, können Sie kann sie mit 'your_bytes.decode (" UTF-8 ")' zu einer Zeichenkette dekodieren. – byxor

+1

Welche Python-Version? –

+0

@AntonisChristofides - Aus dem Traceback, schließe ich Python3. –

Antwort

6

Da Sie Python 3 verwenden, fügen Sie einfach die encoding Parameter open():

corpus = open('C:\\Users\\Customer\\Desktop\\DISSERTATION\\ettuthokai.txt', 
       encoding='utf-8').read() 
+0

Funktioniert nur in Python 3+. Für Python 2 verwenden Sie 'codecs.open'. –