Я читал слева направо и по центру о юникоде и питоне.Я думаю, что понимаю, что такое кодирование / декодирование, но как только я пытаюсь использовать стандартный метод библиотеки, манипулирующий именем файла, я получаю печально известную:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 19:
ordinal not in range(128)
В этом случае \ xe9 обозначает 'é', и не имеет значения, если я вызываю его из os.path.join () или shutil.copy (), он выдает ту же ошибку.Насколько я понимаю, это связано с кодировкой Python по умолчанию.Я пытаюсь изменить его на:
# -*- coding: utf-8 -*-
Ничего не меняется.Если я наберу:
sys.setdefaultencoding('utf-8')
, он скажет мне:
ImportError: cannot import name setdefaultencoding
Что я действительно не понимаю, так это то, почему это работает, когда я набираю его в терминале, '\ xe9' ивсе.Может кто-нибудь объяснить мне, почему это происходит / как обойти это?
Спасибо