Datei einlesen, Fehler UnicodeDecodeError: 'utf-8'

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

Hi! Ich nutze Eclipse "mars" mit PyDev.

Ich habe im Workspace von Eclipe eine test.txt Datei mit dem Inhalt:
Mustermann Max
Musterfrau Anita

Diese Datei habe ich direkt in Eclipse erstellt.

Die Datei möchte ich nun einlesen:

Code: Alles auswählen

#Datei einlesen
with open('test.txt', 'r') as datei:
    for line in datei:
        #(nachname,vorname) = line.split(' ')
        print(line)
Wenn ich diese Datei (aktuell nur eine Zeile) einlese bekomme ich folgende Fehlermeldung:

pydev debugger: starting (pid: 6900)
Traceback (most recent call last):
File "I:\Frieder\tools\eclipse-java-mars-1-win32-x86_64\eclipse\plugins\org.python.pydev_4.4.0.201510052309\pysrc\pydevd.py", line 2364, in <module>
globals = debugger.run(setup['file'], None, None, is_module)
File "I:\Frieder\tools\eclipse-java-mars-1-win32-x86_64\eclipse\plugins\org.python.pydev_4.4.0.201510052309\pysrc\pydevd.py", line 1784, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "I:\Frieder\tools\eclipse-java-mars-1-win32-x86_64\eclipse\plugins\org.python.pydev_4.4.0.201510052309\pysrc\_pydev_imps\_pydev_execfile.py", line 13, in execfile
contents = stream.read()
File "C:\Python34\lib\codecs.py", line 319, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 130: invalid start byte

Folgendes hat auch nicht gebracht:

Code: Alles auswählen

with open(oldfile, 'r', encoding='utf-8') as infile:
Quelle:
http://stackoverflow.com/questions/9282 ... -statement

Danke schon jetzt für eure Hilfe
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Wahrscheinlich ist dein Textfile nicht UTF-8 kodiert sondern anders.

`UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 130: invalid start byte` -> UTF-8 wird probiert, geht aber nicht.
the more they change the more they stay the same
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

Auch wenn ich den kompletten Pfad angebe ändert sich nichts...

Code: Alles auswählen

with open('I:\\Frieder\\workspace\\pp_daten\\test.txt', 'r') as datei:
    for line in datei:
        #(nachname,vorname) = line.split(' ')
        print(line)
Ich nutze Windows 7 64bit
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

Dav1d hat geschrieben:Wahrscheinlich ist dein Textfile nicht UTF-8 kodiert sondern anders.

`UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 130: invalid start byte` -> UTF-8 wird probiert, geht aber nicht.
Hi!

Also ich habe die test.txt Datei erstellt. Anschließend geöffnet, die beiden Zeilen eingetippt und mit "Speichern unter", dann Codierung: "UTF-8" gespeichert.

Meinst du das?

Wenn ich die Datei unter Eclipse direkt erstelle, gebe ich anschließend unter "properties" UTF-8 an...aber es funtkioniert dennoch nicht...
pythonix
User
Beiträge: 10
Registriert: Samstag 29. März 2014, 16:40

Kurios, nachdem ich Eclipe geschkossen udn wieder geöffnet habe funktionert es... Danke für deine Mühe!
BlackJack

@pythonix: Wenn die Datei tatsächlich den gezeigten Inhalt hat(te) dann wird das wohl eher ein Problem mit dem Quelltext gewesen sein und nicht mit der CSV-Datei. Denn dort sind ja nur ASCII-Zeichen enthalten. Und der Traceback sieht auch eher so aus als wenn das `execfile` das `pydev` mit dem Quelltext machen möchte schon an der Kodierung eben jenes Quelltextes scheitert.
Antworten