2017-03-06 7 views
2

Ich habe gerade Anaconda auf einem Windows 10-Rechner installiert (Python 2.7.12 | Anaconda 4.2.0 (64-bit) |) Ich habe ein Problem beim Lesen von Text aus einer Datei. Bitte Code und Ausgabe unten sehen. Ich möchte den tatsächlichen Text aus der Datei.Datei in String (Python) lesen

Danke !!

Ausgang:

['\xff\xfeT\x00h\x00i\x00s\x00', 
    '\x00i\x00s\x00', 
    '\x00a\x00', 
    '\x00t\x00e\x00s\x00t\x00.\x00', 
    '\x00', 
    '\x00', 
    '\x00', 
    '\x00T\x00h\x00i\x00s\x00', 
    '\x00i\x00s\x00', 
    '\x00a\x00', 
    '\x00t\x00e\x00s\x00t\x00'] 

Code:

try:  
    with open('test.txt', 'r') as f:   
     text = f.read() 
except Exception as e: 
    print e 
    print text.split() 

test.txt:

This is a test. 

This is a test 
+0

Danke. Der Text in der Datei verwendete encoding = "Unicode". Zu "Ansi" geändert, und es funktioniert jetzt gut. – user5579185

+0

Wenn Sie eine Antwort erhalten haben, die Ihren Bedürfnissen am besten entspricht, können Sie diese Antwort als akzeptiert markieren. – Ouroborus

Antwort

2

ich mit dem io Modul das beste Glück gehabt haben, die Datei zu öffnen mit eine explizite Codierung.

import io 
with io.open(FILE, 'r', encoding='utf-16') as f: 
    job = f.read() 
+0

Danke !. Das funktioniert gut. – user5579185

0

Sie haben ein Problem mit der Textcodierung. Ihre Datei ist nicht in UTF-8, sondern in UTF-16 codiert. Statt offen zu verwenden, verwenden:

import codecs 
with codecs.open("test.txt", "r", encoding="utf-16") as f: 
    text = f.read() 

Oder Python3 wechseln, die eine viel bessere Unterstützung für Unicode hat.