Кодировка строки Python - имя файла - PullRequest
0 голосов
/ 27 октября 2011

str (file.key) = '1011/101011 / file_name'

newFileName = str(file.key)

Но когда я запускаю код, я получаю:

UnicodeEncodeError: 'ascii'кодек не может кодировать символы в позиции xy: порядковый номер не находится в диапазоне (128)

Мне нужно выполнить некоторый анализ имени файла и затем загрузить его с сервера s3.Как я могу получить только имя_файла?

1 Ответ

2 голосов
/ 27 октября 2011

Вы отправили далеко в небольшой контекст, чтобы дать достойный ответ, но я все равно попробую.

Кажется, что имя файла, которое вы пытаетесь создать, содержит символы не ascii, которые нельзя автоматически преобразовать в стандартную строку в python 2.x.

Если вы замените str на unicode, вы сможете полностью избежать необходимости конвертации. Если какая-то другая часть вашего кода требует от вас использования str, вы можете попытаться закодировать его следующим образом: newFileName = unicode(file.key).encode('ascii', 'ignore'). Обратите внимание, что необратимые символы будут опущены в моем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...