Я довольно часто сталкивался с этой ошибкой при попытке записать азиатские символы в файл - я могу печатать символы просто отлично в IDLE (хотя и не в командной строке), но когда я пытаюсь записать их в файл, я получаю эту ошибку:UnicodeEncodeError при записи азиатских символов в файл
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>
Я думать понять, что ошибка: в основном это не может сделать азиатские символы, поэтому он не может записать их в файл - но если я могу напечатать их в IDLE, почему бы им не написать их в файл? Есть ли способ обойти это?
(я не уверен, если код необходимо понять ошибку, но я выложу его в любом случае)
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()
Это работало как шарм, спасибо огромное! –