Ich habe diesen Fehler ziemlich konsequent bei dem Versuch, Asian-Zeichen in eine Datei zu schreiben - ich kann die Zeichen in IDLE (aber nicht in der Befehlszeile) gut drucken, aber wenn ich versuche, sie in eine Datei zu schreiben, erhalte ich diese Fehlermeldung:UnicodeEncodeError beim Schreiben asiatischer Zeichen in eine Datei
Traceback (most recent call last):
File "C:\Users\Tai\Desktop\Development\playlistcreator\main.py", line 21, in <module>
playlistcreator.addtoplaylist(list_of_paths,"C:\\Users\\Tai\\Desktop\\New Music\\testplaylist.m3u8")
File "C:\Users\Tai\Desktop\Development\playlistcreator\playlistcreator.py", line 74, in addtoplaylist
playlistFile.write(track + '\n')
File "C:\Users\Tai\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 56-57: character maps to <undefined>
ich denken verstehen, was der Fehler ist: im Grunde kann es keine asiatischen Zeichen machen, damit es nicht in eine Datei schreiben kann - Aber wenn ich sie in IDLE drucken kann, warum kann sie dann nicht in eine Datei geschrieben werden? Gibt es eine Möglichkeit, dies zu umgehen?
(Ich bin nicht sicher, ob der Code erforderlich ist, um den Fehler zu verstehen, aber ich werde es trotzdem schreiben)
def addtoplaylist(paths, playlist_path):
# Open file (or create if it does not exist)
#change to given directory
try:
os.chdir(os.path.dirname(paths))
except Exception as err:
print(err)
#open file - if it does not exist, create it
with open(os.path.basename(playlist_path), 'a+') as playlistFile:
for track in paths:
playlistFile.write(track + '\n')
playlistFile.close()
Das funktionierte wie ein Zauber, vielen Dank! –