对多个根目录调用 os.walk?
我注意到这里提到的 os.walk 这个接口,具体内容可以在这个链接找到:http://docs.python.org/2/library/os.html,它的用法是这样的:
for root, dirs, files in os.walk('C:\\Users\\Me\\Videos')
请问有没有办法在一次调用中传入多个目录给这个接口呢?
2 个回答
2
简单来说,不行。不过你可以看看 itertools.chain()
,它可以帮你实现你想要的功能,而不是你问的那个问题。
3
难道你不能直接用两个循环吗?
for x in ("c:\\root1", "c:\\root2", "c:\\root3"):
for root, dirs, files in os.walk(x):
pass
或者用一个复杂的单行代码,配合 itertools.chain()
来实现:
for root, dirs, files in itertools.chain(*[os.walk(x) for x in ("c:\\root1", "c:\\root2", "c:\\root3")]):
pass