Python 还可以获取不包含';不匹配
我使用递归glob查找文件并将其从一个驱动器复制到另一个驱动器Python 还可以获取不包含';不匹配,python,glob,recursive-datastructures,fnmatch,Python,Glob,Recursive Datastructures,Fnmatch,我使用递归glob查找文件并将其从一个驱动器复制到另一个驱动器 def recursive_glob(treeroot,模式): 结果=[] 对于os.walk(treeroot)中的基本文件、目录和文件: goodfiles=fnmatch.filter(文件、模式) extend(goodfiles中f的os.path.join(base,f) 返回结果 很好。但我也希望能够访问与筛选器不匹配的元素 有人能帮忙吗?我可以在循环中构建正则表达式,但必须有一个更简单的解决方案,对吗?如果顺序不
def recursive_glob(treeroot,模式):
结果=[]
对于os.walk(treeroot)中的基本文件、目录和文件:
goodfiles=fnmatch.filter(文件、模式)
extend(goodfiles中f的os.path.join(base,f)
返回结果
很好。但我也希望能够访问与筛选器不匹配的元素
有人能帮忙吗?我可以在循环中构建正则表达式,但必须有一个更简单的解决方案,对吗?如果顺序不重要,请使用集合:
goodfiles = fnmatch.filter(files, pattern)
badfiles = set(files).difference(goodfiles)
os.walk
循环中的另一个循环也可以使用:
goodfiles = []
badfiles = []
for f in files:
if fnmatch.fnmatch(f, pattern):
goodfiles.append(f)
else:
badfiles.append(f)
注意:使用此解决方案,您只需在文件列表中迭代一次。实际上,os.path.join
部分可以移动到上面的循环中