0
При перечислении всех файлов на диск с:Кодирование проблемы при печати всех файлов диска
import os
for path, subdirs, files in os.walk('d:\\'):
for name in files:
fname = os.path.join(path, name)
print 'hello %s' % fname
я получаю:
[Decode error - output not utf-8]
С таким же кодом, который я иногда получаю:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 60: ordinal not in range(128)
Как это решить?
Примечание: Я использую Python 2.7 с Windows 7. Я прочитал много вопросов по SO о UTF-8 кодировке, и испробовали разные вещи, как:
print name.encode('utf-8') # or utf8
print name.decode('utf-8')
print name.decode().encode(...)
Конечно, # -*- coding: utf-8 -*-
в моем .py файле.
Есть, вероятно, каталоги или файлы в пути, которые не являются UTF-8 закодированных строк, поэтому при попытке распечатать их питон не знает, как расшифровать их. Я не думаю, что это имеет какое-то отношение к кодированию вашего .py-файла. – Billy