从更宽的递归目录中搜索文件



我想从一个目录开始搜索一个文件,比如说"C:/users/test1/test2/";,如果在那里找不到文件,那么我想让目录更宽(例如"C:\users/test1/"(,以此类推。当然,由于我已经在";C:/users/test1/test2/";我需要将其从搜索中排除。

os.walk((看起来是一个执行搜索的好函数,但正如我所提到的,我希望能够在文件树中后退一步,排除已经搜索过的目录。我该如何做到这一点,或者更好的是,是否有一个函数已经实现了这一点?

os.walk确实接受可选参数topdown,如果是True,则

调用者可以修改目录名列表(可能使用del或slice赋值(,walk((只会递归到名称保留在目录名中的子目录;这可以用来删减搜索,强制执行特定的访问顺序,甚至通知walk((调用方之前创建或重命名的目录它再次恢复walk((。当topdown为False时修改目录名具有对行走的行为没有影响,因为在自下而上的模式中目录名中的目录是在生成目录路径之前生成的生成。

因此,您应该能够通过使用此功能排除不需要的(已访问的目录(。

最新更新