每日一课 | Python列出目录中的所有文件

    科技2025-01-25  31

    在Python中,我们可以使用os.walker或glob创建类似于find()函数,以在指定目录及其子目录中搜索或列出文件或文件夹。

    1.沃克沃克

    1.1列出指定目录+子目录中的所有.txt文件

    import os path = 'c:\\projects\\hc2\\'  files = [] # r=root, d=directories, f = files for r, d, f in os.walk(path):     for file in f:         if '.txt' in file:             files.append(os.path.join(r, file)) for f in files:     print(f)

    输出量 

    c:\projects\hc2\app\readme.txt c:\projects\hc2\app\release.txt c:\projects\hc2\web\readme.txt c:\projects\hc2\whois\download\afrinic.txt c:\projects\hc2\whois\download\apnic.txt c:\projects\hc2\whois\download\arin.txt c:\projects\hc2\whois\download\lacnic.txt c:\projects\hc2\whois\download\ripe.txt c:\projects\hc2\whois\out\test\resources\asn\afrinic\3068.txt c:\projects\hc2\whois\out\test\resources\asn\afrinic\37018.txt //...

    1.2列出指定目录+子目录中的所有目录

    import os path = 'c:\\projects\\hc2\\'  folders = [] # r=root, d=directories, f = files for r, d, f in os.walk(path):     for folder in d:         folders.append(os.path.join(r, folder)) for f in folders:     print(f)

    输出量 

    c:\projects\hc2\ c:\projects\hc2\analyzer\ c:\projects\hc2\analyzer\out\ c:\projects\hc2\analyzer\out\production\ c:\projects\hc2\analyzer\out\production\classes\ c:\projects\hc2\analyzer\out\production\classes\com\ //...

    2.球

    在版本3.5中更改:支持使用**的递归glob。

    2.1列出指定目录+子目录(**)中的所有.txt文件

    import glob  path = 'c:\\projects\\hc2\\'  files = [f for f in glob.glob(path + "**/*.txt", recursive=True)] for f in files:     print(f)

    输出量 

    c:\projects\hc2\app\readme.txt c:\projects\hc2\app\release.txt c:\projects\hc2\web\readme.txt c:\projects\hc2\whois\download\afrinic.txt c:\projects\hc2\whois\download\apnic.txt c:\projects\hc2\whois\download\arin.txt c:\projects\hc2\whois\download\lacnic.txt c:\projects\hc2\whois\download\ripe.txt c:\projects\hc2\whois\out\test\resources\asn\afrinic\3068.txt c:\projects\hc2\whois\out\test\resources\asn\afrinic\37018.txt //...

    2.2列出指定目录+子目录(**)中的所有目录

    import glob folders = [f for f in glob.glob(path + "**/", recursive=True)] for f in folders:     print(f)

    输出量 

    c:\projects\hc2\ c:\projects\hc2\analyzer\ c:\projects\hc2\analyzer\out\ c:\projects\hc2\analyzer\out\production\ c:\projects\hc2\analyzer\out\production\classes\ c:\projects\hc2\analyzer\out\production\classes\com\ //...

    参考文献:

    皮顿文档– Glob

    Python文档– os.walker

    翻译自: https://mkyong.com/python/python-how-to-list-all-files-in-a-directory/

    推荐阅读--

    每周一课 | Python 示例拆分字符串入到字典里面

    每日一课 | 如何将String转换为int

    每日一课 | Python time.sleep 精准延迟到秒

    每日一课 | Python 如何判断一个字符串是否包含另一个字符串?

    球分享

    球点赞

    球在看

    Processed: 0.022, SQL: 8