Возможно, вам потребуется декодировать строку в Unicode, а затем перекодировать ее в UTF-8, прежде чем передать ее в os.listdir
.Похоже, что ваша японская строка закодирована в shift-JIS:
>>> '\x82\xa9\x82\xcc\x96I'.decode('shift-jis').encode('utf-8')
'\xe3\x81\x8b\xe3\x81\xae\xe8\x9c\x82'
>>> print '\x82\xa9\x82\xcc\x96I'.decode('shift-jis')
かの蜂
В качестве альтернативы, используйте следующую функцию os.listdir
, чтобы получить строки Unicode из нее в первомplace:
В Windows NT / 2k / XP и Unix, если path - это объект Unicode, результатом будет список объектов Unicode.Не декодируемые имена файлов будут по-прежнему возвращаться как строковые объекты.
Итак:
os.listdir(ur'C:\Documents and Settings')
# ---------^