Seite 1 von 1

Datei einlesen, Fehler UnicodeDecodeError: 'utf-8'

Verfasst: Dienstag 12. Januar 2016, 11:34
von pythonix
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

Re: Datei einlesen, Fehler UnicodeDecodeError: 'utf-8'

Verfasst: Dienstag 12. Januar 2016, 11:50
von Dav1d
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.

Re: Datei einlesen, Fehler UnicodeDecodeError: 'utf-8'

Verfasst: Dienstag 12. Januar 2016, 11:51
von pythonix
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

Re: Datei einlesen, Fehler UnicodeDecodeError: 'utf-8'

Verfasst: Dienstag 12. Januar 2016, 11:56
von pythonix
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...

Re: Datei einlesen, Fehler UnicodeDecodeError: 'utf-8'

Verfasst: Dienstag 12. Januar 2016, 12:11
von pythonix
Kurios, nachdem ich Eclipe geschkossen udn wieder geöffnet habe funktionert es... Danke für deine Mühe!

Re: Datei einlesen, Fehler UnicodeDecodeError: 'utf-8'

Verfasst: Dienstag 12. Januar 2016, 12:19
von 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.