我正在编写一个下降到目录树的脚本(使用 os.walk()),然后访问与某个文件扩展名匹配的每个文件。但是,由于我的工具将用于的某些目录树还包含子目录,而这些子目录又包含很多无用的(出于此脚本的目的)的东西,我想我会添加一个选项供用户指定要从遍历中排除的目录列表。
这很容易使用 os.walk()。毕竟,由我决定是否真的要访问由 os.walk() 产生的相应文件/目录,或者只是跳过它们。问题是,例如,如果我有这样的目录树:
root--
|
--- dirA
|
--- dirB
|
--- uselessStuff --
|
--- moreJunk
|
--- yetMoreJunk
而且我想排除uselessStuff及其所有子目录, os.walk() 仍将下降到uselessStuff的所有(可能数千个)子目录中,不用说,这会大大减慢速度。在一个理想的世界里,我可以告诉 os.walk() 甚至不用费心产生更多uselessStuff的孩子的孩子,但据我所知,没有办法这样做(有吗?)。
有人有想法吗?也许有一个第三方库可以提供类似的东西?