python – как добавить литерал unicode к переменной?

Я видел несколько примеров:

for name in os.listdir(u'somedir') : 

моя проблема в том, что я получаю somedir как переменную, так как я могу добавить литерал 'u'?

что-то вроде

 for name in ops.listdir(u+somedir) 

?

3 Solutions collect form web for “python – как добавить литерал unicode к переменной?”

Если источник somedir не somedir его как строку Unicode ( isinstance(somedir, unicode) является False), тогда вы должны декодировать его, предоставив соответствующую кодировку символов (это зависит от того, откуда берутся байты):

 unicode_somedir = somedir.decode(encoding) 

Учитывая исходную байтовую строку, вы можете преобразовать ее в объект unicode (Python 2.x) или объект str (Python 3.x), расшифровав его:

 for name in ops.listdir(somedir.decode("utf-8")): 

Используйте любую кодировку, в которой закодирована строка байта вместо "utf-8" . Если вы опустите кодировку, будет использоваться стандартная кодировка Python ( ascii в 2.x, utf-8 в 3.x).

Дополнительную информацию см. В Unicode HOWTO ( 3.x ).

Юникода (somedir)

например, использовать встроенную функцию

  • Python sys.maxint, sys.maxunicode в Linux и windows
  • Стандартная идиома Python для установки буфера sys.stdout в ноль не работает с Unicode
  • Python: решение юникодного ада с помощью unidecode
  • Разница между u'string 'и unicode (строка)
  • Правильное выражение регулярного выражения юникода Python не совпадает с некоторыми символами юникода - ошибка или ошибка?
  • Как заменить символы Unicode на турецкие символы в текстовом файле с помощью Python
  • Как преобразовать escape-последовательности unicode в unicode символы в строке python
  • Нормализация Unicode
  • Python - лучший язык программирования в мире.