Closed Maagi93 closed 3 years ago
Wenn du beim schreiben das File im UTF-8 Encoding öffnest, sollte das Problem schon erledigt sein
Danke für die schnelle Antwort! Wie mache ich das?
Mein Python Datei beginnt mit:
Meinst du das? Oder wie kann ich das File im UTF-8 Encoding öffnen?
siehe https://stackoverflow.com/a/4112897
data = file('file.txt').read()
... process data ...
data = data.encode('utf-8')
file('file2.txt','w').write( data )
ich habe das nun so in meinen Code integriert:
`elif typ == "POC":
description = data["description"].encode('utf-8')
#Dokumentation von ausgewählten POC
if data["ric"] in globalVars.config.get("Alarmbot", "activeric"):
logging.warning("POC_Alarm Meldung wird in /home/pi/Documents/boswatch_log/poc_ausge_poc.csv gespeichert!")
datei = open('/home/pi/Documents/boswatch_log/poc_ausge_poc.csv','a+')
datei.write(datum+","+zeit+","+wochentag+","+zeitraum+","+data["ric"]+","+description+","+data["msg"]+"\n")
datei.close()
`
Wenn ich das Ganze nun teste erhalte ich diese Fehlermeldung im Boswatch-Log:
10.10.2020 10:21:21 - Alarmbot [DEBUG ] unknown error Traceback (most recent call last): File "/opt/boswatch/plugins/Alarmbot/Alarmbot.py", line 172, in run description = data["description"].encode('utf-8') UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)
Habe es nun hinbekommen. Die Lösung stand auch in deinem Kommentar...
Ich hatte die ganze Zeit in eine .csv-Datei geschrieben. Seit ich in eine .txt-Datei schreibe funktioniert es, auch ohne encoding!
Vielen Dank für deine Unterstützung!
Hallo zusammen,
habe mir ein kleines Plugin aus dem template-Plugin gebaut, das Alarme für spezielle RICs in eine .csv Datei schreibt:
datei = open('/home/pi/Documents/boswatch_log/poc.csv','a+') datei.write(datum+","+zeit+","+wochentag+","+zeitraum+","+data["ric"]+","+data["description"]+","+data["msg"]+"\n") datei.close()
Das funktioniert soweit auch, allerdings bekomme ich Umlaute nicht korrekt angezeigt, sondern z.B. "ö" statt "ö" oder "ü" statt "ü".
Wie kann ich die Strings umwandeln, damit meine Ausgabe korrekt wird?
Vielen Dank und viele Grüße!