Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 还可以获取不包含';不匹配_Python_Glob_Recursive Datastructures_Fnmatch - Fatal编程技术网

Python 还可以获取不包含';不匹配

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) 返回结果 很好。但我也希望能够访问与筛选器不匹配的元素 有人能帮忙吗?我可以在循环中构建正则表达式,但必须有一个更简单的解决方案,对吗?如果顺序不

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

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
部分可以移动到上面的循环中