【问题标题】:How can I recursively find the *directories* containing a file of a certain type?如何递归地找到包含某种类型文件的 *directories*?
【发布时间】:2016-05-31 18:03:45
【问题描述】:

我有一组 .bam,文件分散在文件夹树中。并非每个目录都包含这样的文件。我知道如何使用 glob 递归地获取文件本身的路径,而不是包含它们的目录。

import glob2
bam_files = glob2.glob('/data2/**/*.bam')
print bam_files

上面的代码给出了 .bam 文件,但我只想要文件夹。想知道是否有直接的方法可以使用没有正则表达式的 glob 来做到这一点。

【问题讨论】:

  • 您可以遍历搜索结果并使用 os.path.dirname() 获取父目录。
  • 谢谢!那行得通。

标签: python glob


【解决方案1】:

使用集合和os.path.dirname() [https://docs.python.org/2/library/os.path.html#os.path.dirname]:

import glob2
import os 
bam_dirs = {os.path.dirname(p) for p in glob2.glob('/data2/**/*.bam')}
print bam_dirs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-20
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多