对多个根目录调用 os.walk?

2 投票
2 回答
523 浏览
提问于 2025-04-17 16:33

我注意到这里提到的 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

撰写回答