美文网首页
用Python获取子目录或文件列表

用Python获取子目录或文件列表

作者: 大器待成 | 来源:发表于2020-06-11 00:07 被阅读0次

    在Python编程中,如果需要对文件进行操作的话,有时会需要搜索指定目录下的特定类型的文件。获取子目录或文件列表用得较多的是os.walkerglob。大器推荐你用glob,从下面的示例代码可以显而易见地看出glob完成相同的功能代码更简洁易读。

    glob

    如果需要递归列出目录下的子目录或子目录下的文件需要使用**通配符,并且设置参数recursiveTrue,这样**通配符才可以匹配零到多个子目录。注意此特性要求Python的版本在3.5及以上。

    列出指定目录下的所有.doc文件

    from glob import glob
    
    files = [f for f in glob('I:/work/*.doc')]
    for f in files:
        print(f)
    

    列出指定目录和子目录下的所有.doc文件

    from glob import glob
    
    files = [f for f in glob('I:/work/**/*.doc', recursive=True)]
    for f in files:
        print(f)
    

    列出指定目录和子目录下的所有目录

    from glob import glob
    
    dirs = [d for d in glob('I:/work/**/', recursive=True)]
    for d in dirs:
        print(d)
    

    os.walker

    os.walker无法只列出指定目录下的所有.doc文件,因此未给出示例代码。

    列出指定目录和子目录下的所有.doc文件

    import os
    
    files = []
    # r=root d=dirs f=files
    for r, d, f in os.walk('I:/work/'):
        for name in f:
            if name.endswith('.doc'):
                files.append(os.path.join(r, name))
    for f in files:
        print(f)
    

    列出指定目录和子目录下的所有目录

    import os
    
    dirs = []
    # r=root d=dirs f=files
    for r, d, f in os.walk('I:/work/'):
        for name in d:
            dirs.append(os.path.join(r, name))
    for d in dirs:
        print(d)
    
    glob.png

    相关文章

      网友评论

          本文标题:用Python获取子目录或文件列表

          本文链接:https://www.haomeiwen.com/subject/mpxvtktx.html