Python – glob模块详解以及glob.glob、glob.iglob函数的使用
1 python中的glob
官方文档地址:https://docs.python.org/3/library/glob.html
python中的glob模块按类Unix Shell的查找规则和匹配模式查找所有匹配的路径名。
该glob模块包含三个函数glob.glob、glob.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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52