• 工资「喂饱肚子」,副业「养活灵魂」!

  • 本站由于前段时间遭受到大量临时和国外邮箱注册,所以对可注册的邮箱类型进行了限制!

  • 计算机图形学与计算几何经典必备书单整理,下载链接可参考:https://www.stubbornhuang.com/1256/

  • 感谢大家访问本站,希望本站的内容可以帮助到大家!

  • 欢迎大家交换友链,可在https://www.stubbornhuang.com/申请友情链接进行友链交换申请!

  • 在本站开通年度VIP,无限制下载本站资源和阅读本站文章

  • 如果觉得本站的内容有帮助,可以考虑打赏博主哦!

  • 问题反馈可发送邮件到stubbornhuang@qq.com

  • 本站会放置Google广告用于维持域名以及网站服务器费用。

Python – glob模块详解以及glob.glob、glob.iglob函数的使用

Python 发布于2022-06-23 阅读 4,792次 0次评论 0次点赞 本文共5245个字,阅读需要14分钟。

1 python中的glob

官方文档地址:https://docs.python.org/3/library/glob.html

python中的glob模块按类Unix Shell的查找规则和匹配模式查找所有匹配的路径名。

该glob模块包含三个函数glob.globglob.iglob、glob.escape。

1.1 glob模块的函数

1.1.1 glob.glob

函数形式

glob.glob(pathname, *, root_dir=None, dir_fd=None, recursive=False)

函数参数

  • pathname:需要查找的路径。该路径既可以是绝对的,如/usr/src/Python-1.5/Makefile,也可以是相对的,如../../Tools//.gif,并且可以使用三个匹配符*?[]。其中*表示匹配任意字符串,?表示匹配任意单个字符,[]表示匹配指定范围内的字符串,如[0-9]表示匹配0到9范围内的单个数字,这三个匹配符和正则表达式中的含义相同。
  • root_dir:指定用于搜索的根目录。
  • recursive:表示将递归搜索子目录下的路径。

函数返回值

返回与pathname匹配的路径名列表。

1.1.2 glob.iglob

函数形式

glob.iglob(pathname, *, root_dir=None, dir_fd=None, recursive=False)

函数参数

  • pathname:需要查找的路径。该路径既可以是绝对的,如/usr/src/Python-1.5/Makefile,也可以是相对的,如../../Tools//.gif,并且可以使用三个匹配符*?[]。其中*表示匹配任意字符串,?表示匹配任意单个字符,[]表示匹配指定范围内的字符串,如[0-9]表示匹配0到9范围内的单个数字,这三个匹配符和正则表达式中的含义相同。
  • root_dir:指定用于搜索的根目录。
  • recursive:表示将递归搜索子目录下的路径。

函数返回值

返回与pathname匹配的路径名的迭代器

1.1.3 glob.escape

函数形式

glob.escape(pathname)

函数参数

  • pathname:需要转义的路径。转义所有特殊字符。

1.2 glob模块函数的简单使用

1.1.1 获取指定目录下的指定类型文件路径

(1) 获取某个目录下所有的png图片文件路径

# -*- coding: utf-8 -*-
import glob

if __name__ == '__main__':
    image_list = glob.glob(r'H:\*.png')
    print(image_list)

(2) 获取某个目录下所有文件后缀为tgz的文件路径

# -*- coding: utf-8 -*-
import glob

if __name__ == '__main__':
    video_list = glob.glob(r'H:\human3.6m\*.tgz')
    print(video_list)

输出:

['H:\\human3.6m\\Poses_D2_Positions_S1.tgz', 'H:\\human3.6m\\Poses_D2_Positions_S11.tgz', 'H:\\human3.6m\\Poses_D2_Positions_S5.tgz', 'H:\\human3.6m\\Poses_D2_Positions_S6.tgz', 'H:\\human3.6m\\Poses_D2_Positions_S7.tgz', 'H:\\human3.6m\\Poses_D2_Positions_S8.tgz', 'H:\\human3.6m\\Poses_D2_Positions_S9.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_S1.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_S11.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_S5.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_S6.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_S7.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_S8.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_S9.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_universal_S1.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_universal_S11.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_universal_S5.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_universal_S6.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_universal_S7.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_universal_S8.tgz', 'H:\\human3.6m\\Poses_D3_Positions_mono_universal_S9.tgz', 'H:\\human3.6m\\Poses_D3_Positions_S1.tgz', 'H:\\human3.6m\\Poses_D3_Positions_S11.tgz', 'H:\\human3.6m\\Poses_D3_Positions_S5.tgz', 'H:\\human3.6m\\Poses_D3_Positions_S6.tgz', 'H:\\human3.6m\\Poses_D3_Positions_S7.tgz', 'H:\\human3.6m\\Poses_D3_Positions_S8.tgz', 'H:\\human3.6m\\Poses_D3_Positions_S9.tgz', 'H:\\human3.6m\\Segments_mat_gt_bs_S1.tgz', 'H:\\human3.6m\\Segments_mat_gt_bs_S11.tgz', 'H:\\human3.6m\\Segments_mat_gt_bs_S5.tgz', 'H:\\human3.6m\\Segments_mat_gt_bs_S6.tgz', 'H:\\human3.6m\\Segments_mat_gt_bs_S7.tgz', 'H:\\human3.6m\\Segments_mat_gt_bs_S8.tgz', 'H:\\human3.6m\\Segments_mat_gt_bs_S9.tgz', 'H:\\human3.6m\\TOF_S1.tgz', 'H:\\human3.6m\\TOF_S11.tgz', 'H:\\human3.6m\\TOF_S6.tgz', 'H:\\human3.6m\\Videos_S1.tgz', 'H:\\human3.6m\\Videos_S11.tgz', 'H:\\human3.6m\\Videos_S5.tgz', 'H:\\human3.6m\\Videos_S6.tgz', 'H:\\human3.6m\\Videos_S7.tgz', 'H:\\human3.6m\\Videos_S8.tgz', 'H:\\human3.6m\\Videos_S9.tgz']

1.1.2 获取指定目录下的所有文件路径

# -*- coding: utf-8 -*-
import glob

if __name__ == '__main__':
    file_list = glob.glob(r'H:\*')
    print(file_list)

1.1.3 获取当前目录下的某个子目录的文件

import glob
print(glob.glob("*/*/helloworld.txt"))

输出

['mydata\\txt\\helloworld.txt']

1.1.4 glob.iglob的使用

# -*- coding: utf-8 -*-
import glob

if __name__ == '__main__':
    for val in glob.iglob(r'H:\human3.6m\*.tgz'):
        print(val)

输出

H:\human3.6m\Poses_D2_Positions_S1.tgz
H:\human3.6m\Poses_D2_Positions_S11.tgz
H:\human3.6m\Poses_D2_Positions_S5.tgz
H:\human3.6m\Poses_D2_Positions_S6.tgz
H:\human3.6m\Poses_D2_Positions_S7.tgz
H:\human3.6m\Poses_D2_Positions_S8.tgz
H:\human3.6m\Poses_D2_Positions_S9.tgz
H:\human3.6m\Poses_D3_Positions_mono_S1.tgz
H:\human3.6m\Poses_D3_Positions_mono_S11.tgz
H:\human3.6m\Poses_D3_Positions_mono_S5.tgz
H:\human3.6m\Poses_D3_Positions_mono_S6.tgz
H:\human3.6m\Poses_D3_Positions_mono_S7.tgz
H:\human3.6m\Poses_D3_Positions_mono_S8.tgz
H:\human3.6m\Poses_D3_Positions_mono_S9.tgz
H:\human3.6m\Poses_D3_Positions_mono_universal_S1.tgz
H:\human3.6m\Poses_D3_Positions_mono_universal_S11.tgz
H:\human3.6m\Poses_D3_Positions_mono_universal_S5.tgz
H:\human3.6m\Poses_D3_Positions_mono_universal_S6.tgz
H:\human3.6m\Poses_D3_Positions_mono_universal_S7.tgz
H:\human3.6m\Poses_D3_Positions_mono_universal_S8.tgz
H:\human3.6m\Poses_D3_Positions_mono_universal_S9.tgz
H:\human3.6m\Poses_D3_Positions_S1.tgz
H:\human3.6m\Poses_D3_Positions_S11.tgz
H:\human3.6m\Poses_D3_Positions_S5.tgz
H:\human3.6m\Poses_D3_Positions_S6.tgz
H:\human3.6m\Poses_D3_Positions_S7.tgz
H:\human3.6m\Poses_D3_Positions_S8.tgz
H:\human3.6m\Poses_D3_Positions_S9.tgz
H:\human3.6m\Segments_mat_gt_bs_S1.tgz
H:\human3.6m\Segments_mat_gt_bs_S11.tgz
H:\human3.6m\Segments_mat_gt_bs_S5.tgz
H:\human3.6m\Segments_mat_gt_bs_S6.tgz
H:\human3.6m\Segments_mat_gt_bs_S7.tgz
H:\human3.6m\Segments_mat_gt_bs_S8.tgz
H:\human3.6m\Segments_mat_gt_bs_S9.tgz
H:\human3.6m\TOF_S1.tgz
H:\human3.6m\TOF_S11.tgz
H:\human3.6m\TOF_S6.tgz
H:\human3.6m\Videos_S1.tgz
H:\human3.6m\Videos_S11.tgz
H:\human3.6m\Videos_S5.tgz
H:\human3.6m\Videos_S6.tgz
H:\human3.6m\Videos_S7.tgz
H:\human3.6m\Videos_S8.tgz
H:\human3.6m\Videos_S9.tgz

欢迎扫码关注我的微信公众号,及时获取文章更新

微信公众号二维码

本文作者:StubbornHuang

版权声明:本文为站长原创文章,如果转载请注明原文链接!

原文标题:Python – glob模块详解以及glob.glob、glob.iglob函数的使用

原文链接:https://www.stubbornhuang.com/2179/

发布于:2022年06月23日 9:13:13

修改于:2023年06月25日 21:04:55

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章末尾
上一篇
Python - 列表list遍历方法总结
Python
下一篇
Python - 字典dict遍历方法总结
Python
当前分类随机文章推荐

发表评论

您必须 [ 登录 ] 才能发表留言!

关注我们的公众号

微信公众号