Python 3 OS walk unicode exception



我在win7中使用python 3.3.3 - 我只想列出网络目录中的所有文件。

import os
for root, dirs, files in os.walk("X:\network\path\foo\bar\baz"):
    print(root)
    print(dirs)
    print(files)

打印内容一段时间后,它会输出此异常。

Traceback (most recent call last):
  File "program.py", line 6, in <module>
    print(files)
  File "C:Python33libencodingscp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character 'u2019' in position
2753: character maps to <undefined>

我如何让它简单地打印? 我似乎总是在python 3中遇到这些Unicode问题。 我只是希望简单的事情变得简单。

在 Windows 7 中,控制台不能正确支持 Unicode 编码。您需要将字符串编码为 cp-437:

print(root.encode("cp437", "backslashreplace").decode("cp437"))

这应该删除DOS控制台中所有不可打印的字符,并将它们替换为其unnnnxnn等效字符。

最新更新