【问题标题】:exclude two directories in glob.glob()排除 glob.glob() 中的两个目录
【发布时间】:2020-09-10 23:49:33
【问题描述】:

我有以下目录和子目录列表。

import glob
zipfiles = 'src/**/**/data.nq.gz'
filelist = glob.glob(zipfiles,recursive = True)

从此列表中,我需要排除两个目录,即“src/27/”和“src/c1/”

我该怎么做?

附: src 是一个巨大的文件夹,其中包含大量的目录和子目录。

提前致谢

【问题讨论】:

    标签: python directory glob


    【解决方案1】:

    你可以试试

    filelist = [file for file in filelist if not file.startswith("src/27/") and not file.startswith("src/c1/")]
    

    编辑:删除了我最初建议的错误解决方案。

    【讨论】:

    • 这是个问题:如果你在迭代时移除一个元素,后面的元素的位置会改变。
    【解决方案2】:

    这应该可行:

    filelist = [f for f in filelist if f[:7] not in ['src/27/', 'src/c1/']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 2019-12-02
      • 2018-08-28
      • 2021-12-28
      相关资源
      最近更新 更多