使用glob或os.walk()忽略特定目录中的文件

史蒂夫

我想排除目录“ dir3_txt”,以便只能files('.txt')从其他目录捕获我试图排除下面的目录,但无法弄清楚如何获取所有具有.txt的文件,以及dir3_txt使用下面的文件:

for root, dirs, files in os.walk('.'):
   print (root)
   dirs[:] = [d for d in dirs if not d.startswith('dir3')]
   for file in files:
        print (os.path.join(root, file))

我正在考虑glob(从堆栈本身获取以下内容),但不确定如何调整glob以使用它。

for file in os.walk('.'):
   for txt in glob(os.path.join(files[0], '*.txt')):
       print(txt)

我经历了os.walk中的排除目录,但是提供的解决方案对我没有帮助,它仅说明跳过目录也无济于事,因为我需要从其他目录中获取文件,如果仅使用glob可以做到这一点更好?

马克西姆

一个简单的解决方案是对目录路径和由os.walk以下命令返回的文件进行字符串比较

for root, dirs, files in os.walk('.'):
   if "/dir3_txt/" not in root:
       for file in files:
            if file.endswith(".txt"):
                print (os.path.join(root, file))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章