我想遍历目录,其中子目录可以在名称中包含非ascii字符。在这种情况下,os.walk
将子目录视为文件。以下示例:
我的目录test
包含子目录:asd
,gé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正确使用路径?
答案 0 :(得分:2)
传入directory
的 unicode 值:
directory = u'C:/path/to/root'
现在os.walk()
将使用unicode路径,Windows将正确处理géocello
文件夹的测试。
请注意,在这种情况下,root
以及dirs
和files
列表中的值也将是Unicode。