还获取与 fnmatch 不匹配的元素

Lar*_*gas 3 python glob recursive-datastructures fnmatch

我正在使用递归 glob 来查找文件并将其从一个驱动器复制到另一个驱动器

def recursive_glob(treeroot, pattern):
   results = []
   for base, dirs, files in os.walk(treeroot):

      goodfiles = fnmatch.filter(files, pattern)
      results.extend(os.path.join(base, f) for f in goodfiles)

return results
Run Code Online (Sandbox Code Playgroud)

工作正常。但我还想访问与过滤器不匹配的元素。

有人可以提供一些帮助吗?我可以在循环内构建一个正则表达式,但一定有一个更简单的解决方案,对吧?

koj*_*iro 5

如果顺序不重要,请使用一组:

goodfiles = fnmatch.filter(files, pattern)
badfiles = set(files).difference(goodfiles)
Run Code Online (Sandbox Code Playgroud)