Я использую, чтобы читать латинский плейлист из spotify скриптом python (2.7).До сих пор латинский-1 работал нормально.
Но потом я встретил имя типа NG², из-за которого оно не работало.Больше.
Это сообщение об ошибке:
...
Solo Fue Una Noche;NG²;Comienzos;9;2004 (printed by a print() cmd)
Traceback (most recent call last):
File "get_playlist-tracks.py", line 110, in <module>
ndt.write(line+"\n").encode('latin-1')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 21-22: ordinal not in range(128)
Думаю, мне нужен код комбинации для латинского-1 и верхнего индекса.Это правильно, и кто-нибудь знает, какой из них будет правильным?
Спасибо за многочисленные ответы!Ну, это немного сложнее:
(Между тем) У меня есть 3 установки Win10 (64-битная) (WinA, WinB, WinC).На WinA (самый старый, 2011, перенесенный с Win7) все работает нормально (Python3.4)На winB и WinC (новейшая версия HW, Python3.6) curl cmd получает код выхода 1,никто не знает, какого черта.Поскольку я хочу избавиться от старого WinA и продолжить использовать свои скрипты на python, я просто пробую скрипты нагость Fedora20 в VMWare Player12.Теперь эта проблема с верхним индексом есть только в системе Fedora(не на WinA - WinB и WinC больше не имеют для меня никакого смысла из-за проблемы с завитками).
Я использую следующие первые две строки в скрипте:
#!/usr/bin/python3.3
# -*- coding: utf-8 -*-
Ошибка появляется, только когда я пытаюсь записать эту строку (с верхним индексом 2) в файл:
print (line) # (works fine!)
ndt.write(line+"\n") # (this one not!)
Я попытался написать команду также с .decode ('utf-8') и .decode ('latin-1')но всегда я получаю одно и то же сообщение ...
Затем я попробовал следующее в консоли python:
>>> line="Solo Fue Una Noche;NG²;Comienzos;9;2004"
>>> playlist_name = '/home/.../Python/PLLs/Sole_01a_tracks.txt'
>>> ndt = open(playlist_name, 'w')
>>> ndt.write(line+"\n").decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute 'decode'
>>> ndt.write(line+"\n")
40
>>> line
'Solo Fue Una Noche;NG²;Comienzos;9;2004'
>>> playlist_name
'/home/.../Python/PLLs/Sole_01a_tracks.txt'
>>> ndt.write(line)
39
код
print ("playlist_contents_file:", playlist_name)
распечатывает:
('playlist_contents_file:', u'/home/.../Python/PLLs/Sole_01a_tracks.txt')