os.walk无法正确使用路径中的unicode字符

时间:2014-07-31 13:17:38

标签: python windows python-2.7 unicode encoding

我想遍历目录,其中子目录可以在名称中包含非ascii字符。在这种情况下,os.walk将子目录视为文件。以下示例:

我的目录test包含子目录:asdgéocello

for root, dirs, files in os.walk(directory):
    print(root, dirs, files)

打印:

test ['asd'] ['geocello']
test\asd [] ['testfile.txt', '123.txt']

我在Windows XP下运行此代码。在Linux上一切都很好。 如何让Python正确使用路径?

1 个答案:

答案 0 :(得分:2)

传入directory unicode 值:

directory = u'C:/path/to/root'

现在os.walk()将使用unicode路径,Windows将正确处理géocello文件夹的测试。

请注意,在这种情况下,root以及dirsfiles列表中的值也将是Unicode。