• glob模块的使用


    • glob是Python内置的文件操作模块,可用于查找指定条件的文件路径。支持通配符如下:
    通配符含义
    *代表0个或多个字符
    ?代表一个字符
    []匹配指定范围的字符,如[0-9]即匹配0~9的数字
    • .. 代表上一级目录。

    1. glob()方法

    • 参数是指定匹配的路径字符串(可以是相对路径或绝对路径),返回值为列表,列表中保存着所有匹配的文件路径。返回的文件名中只包括指定目录里的文件名,不包括指定目录的子文件夹中的文件。

    1. 使用绝对路径

    import glob
    
    file_list1 = glob.glob(r'd:/*.txt')
    file_list2 = glob.glob(r'd:/*/*.txt')
    print(file_list1)
    print(file_list2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    运行结果如下:

    ['d:/secret.txt']
    ['d:/Anaconda\\LICENSE_PYTHON.txt', 'd:/Anaconda\\vscode_eula.txt', 'd:/phpStudy\\使用说明.txt', 'd:/qqpcmgr_docpro\\关于本文件夹的说明2.0.txt', 'd:/yolov5-6.1\\requirements.txt']
    
    • 1
    • 2

    2. 使用相对路径

    import glob
    
    file_list2 = glob.glob(r'./*/*/正常/老人/*.png')     # ./代表当前文件所在的目录下
    print(file_list2)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:

    ['.\\人脸表情\\人脸表情\\正常\\老人\\101.png', '.\\人脸表情\\人脸表情\\正常\\老人\\118.png', '.\\人脸表情\\人脸表情\\正常\\老人\\127.png', '.\\人脸表情\\人脸表情\\正常\\老人\\19.png', '.\\人脸表情\\人脸表情\\正常\\老人\\21.png', '.\\人脸表情\\人脸表情\\正常\\老人\\36.png', '.\\人脸表情\\人脸表情\\正常\\老人\\38.png', '.\\人脸表情\\人脸表情\\正常\\老人\\42.png']
    
    • 1

    2. iglob()方法

    • 参数是匹配的路径字符串(可以是相对路径或绝对路径),可逐个获取匹配的文件路径名,返回值是一个迭代器对象,需要通过循环遍历来读取迭代器对象中的元素。
    import glob
    
    file_list1 = glob.iglob(r'./../*/*/*/*/*.png')
    print(file_list1)   #     返回一个迭代器对象
    
    count = 0
    for item in file_list1:
        count += 1
        print(item)
        if count == 10:
            break
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果:

    <generator object _iglob at 0x000002C82538CB30>
    ./..\数据统计\人脸表情\手势动作\OK\13.png
    ./..\数据统计\人脸表情\手势动作\剪刀手\1.png
    ./..\数据统计\人脸表情\手势动作\剪刀手\119.png
    ./..\数据统计\人脸表情\手势动作\剪刀手\2.png
    ./..\数据统计\人脸表情\手势动作\剪刀手\52.png
    ./..\数据统计\人脸表情\手势动作\拒绝\1.png
    ./..\数据统计\人脸表情\手势动作\拒绝\120.png
    ./..\数据统计\人脸表情\手势动作\捂脸\10.png
    ./..\数据统计\人脸表情\手势动作\捂脸\11.png
    ./..\数据统计\人脸表情\手势动作\捂脸\12.png
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    基于马科维茨与蒙特卡洛模型的资产最优配置模型(Matlab代码实现)
    BM1反转链表[栈+头插法]
    Linux下gdb调试命令介绍
    IMS异常场景介绍
    论文速览【RL - Exploration】—— 【Go-Explore】First return, then explore
    Java RSA密钥从RSAPrivateKey和RSAPublicKey对象中,分别提取模和指数
    【C语言学习者必会的题目集锦1】巩固基础,稳步提高
    网络安全(黑客)自学
    多维时序 | MATLAB实现CNN-GRU多变量时间序列预测
    『Echarts』基本使用
  • 原文地址:https://blog.csdn.net/ungoing/article/details/127954181