为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼啦一阵风 2021-05-30 11:02:22
我想排除目录“dir3_txt”,以便我只能files('.txt')从其他目录中捕获。我试图排除如下所示的目录,但无法弄清楚如何将所有具有 .txt 的文件作为 ext 其他文件,以便在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可以做到这一点更好?
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

一个简单的解决方案就是对由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))


查看完整回答
反对 回复 2021-06-01
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

for root, dirs, files in os.walk('.'):

   print (root)

   dirs[:]= [d for d in dirs if d[:4]!='dir3']

   for file in files:

      if file[-4:]=='.txt':

        print (os.path.join(root, file))

我现在没有任何系统可以测试这一点,因此,如果有任何问题,请发表评论。


编辑:


现在,它仅检测“ .txt”文件。


查看完整回答
反对 回复 2021-06-01
  • 2 回答
  • 0 关注
  • 243 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信