UnicodeEncodeError

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
ruderfrosch
User
Beiträge: 3
Registriert: Sonntag 27. November 2011, 00:59

Hallo Leute,

vielleicht könnt ihr mir ja mal helfen.
Ich hab hier von der Uni ein paar Python-Dateien bekommen, die lesen einen Text ein, parsen ihn und geben dann wieder was aus (das so im Groben).
Jetzt hab ich folgendes Problem. Ich habe hier zwei Dateien, die sollen eingelesen werden. Wenn diese Dateien nicht in der UTF-8-Codierung sind, kommt folgende Meldung:
File [....py], line XYZ, in function with open(self.probFile, encoding='utf-8') as file: IOError: [Errno 2] No such file or directory:
Speichere ich die beiden Dateien aber in UTF-8-Codierung (mit dem Notepad++), kommt bei mir folgende Fehlermeldung
File "C:\Python32\lib\encodings\cp850.py", line 20, in encode
return codecs.charmap_encode(input, self.errors, encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 0: character maps tp <undefined>
So wie es ausschaut, liegts wohl eher an den Dateien als an den Python-Geschreibsel der Uni. Was kann ich machen, damit diese Probleme weggehen?
Ideen ?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Der IOError kann eigentlich nicht sein - zumindest nicht, wegen einer falschen Kodierung! Oder sind im Dateinamen evtl. Nicht ASCII-Zeichen? Wobei es dann auch danach nicht gehen sollte - der Dateiname hat ja nichts mit dem Inhalt zu tun.

Du solltest keinen Bezeichner `file` nennen, da das ein Built-In ist, welches Du damit überschreibst.

Hast Du evtl. eine BOM in der Datei drin? Man kann beim notepad++ iirc auswählen ob mit oder ohne gespeichert werden soll. Du musst auch jeden Fall "ohne" auswählen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten