Formatierung und Unicode -> Fehler?

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.
kaineanung
User
Beiträge: 145
Registriert: Sonntag 5. April 2015, 20:57

Gleicher Fehler an anderer Art und Stelle:

ich schreibe in eine Textdatei und bekomme bei Inhalten mit deutschen Umlauten den gleichen o.g. Fehler
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 29: ordinal not in range(128)
Der Code ist folgender:

Code: Alles auswählen

with open(tmpFile,"a+") as f: f.write(tmpValue+"\n")
tmpFile = Datei
tmpValue = Text welcher in die Datei angehängt werden soll.
Im tmpValue ist ein 'ü' enthalten.

Ich dachte ich schreibe das in diesen Thread weil der den gleichen Fehler behandelt bevor ich einen neuen eröffne. Ich hoffe das ist so ok für euch.

Ich habe ein wenig gegoogelt und gesehen das es auch die möglichkeit gibt als 3. Parameter in der 'open'-Funktion ein "utf-8" zu übergeben. Dies hat aber leider nicht geholfen.
Da bekomme ich dann an gleicher Stelle folgenden Fehler:
TypeError: an integer is required
Was kann ich tun? Was läuft falsch?
Danke schon einmal im Voraus für eure Mühe!
BlackJack

@kaineanung: Die Kodierung kann man bei `open()` bei Python 3 angeben. In Python 2 muss man dafür `io.open()` verwenden.
kaineanung
User
Beiträge: 145
Registriert: Sonntag 5. April 2015, 20:57

Ich habe das jetzt so gelöst das ich per [string].ecode("latin-1") den Text zuerst in ascii umwandlet bevor ich es zum schreiben an die Dateiklasse übergebe.
Ist das so auch korrekt?
Antworten