Python – glob模块详解以及glob.glob、glob.iglob函数的使用
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – glob模块详解以及glob.glob、glob.iglob函数的使用
原文链接:https://www.stubbornhuang.com/2179/
发布于:2022年06月23日 9:13:13
修改于:2022年06月23日 9:13:13

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
当前分类随机文章推荐
- Python - 使用with open as 读写文件 阅读1349次,点赞0次
- Python - 配置Yolov5出现ImportError: cannot import name 'PILLOW_VERSION' from 'PIL'错误 阅读986次,点赞0次
- Python - 使用scikit-video库获取视频的旋转角度并使用opencv_python根据旋转角度对视频进行旋转复原 阅读2380次,点赞1次
- Python3爬虫 - requests的请求响应状态码(requests.status_code) 阅读8495次,点赞4次
- Python - 不依赖第三方库对类对象进行json序列化与反序列化 阅读1229次,点赞0次
- Python - 不定长函数参数列表 阅读1807次,点赞0次
- Python - 语音识别文本相似性度量库jiwer,可计算文字错误率WER、匹配错误率MER等相似性度量指标 阅读851次,点赞0次
- Python - 字典dict遍历方法总结 阅读392次,点赞0次
- Python - opencv-python统计一个文件夹以及所有子文件夹下所有视频的帧率和帧数 阅读80次,点赞0次
- Python - 使用Python+websockets时报错:AttributeError: module 'websockets' has no attribute 'serve' 阅读1392次,点赞0次
全站随机文章推荐
- Pytorch - 内置的CTC损失函数torch.nn.CTCLoss参数详解与使用示例 阅读662次,点赞0次
- C++ - 函数返回多个返回值的方法总结 阅读1509次,点赞0次
- OpenGL地球与太阳绕转代码 阅读2691次,点赞0次
- 资源分享 - Computer Facial Animation , Second Edition 英文高清PDF下载 阅读1570次,点赞0次
- 资源分享 - Computer Graphics Principles and Practice (3rd edition) 英文高清PDF下载 阅读2726次,点赞0次
- 资源分享 - Vulkan应用开发指南 , Vulkan Programming Guide - The Official Guide to Learning Vulkan中文版PDF下载 阅读779次,点赞0次
- 解决Python爬虫在爬资源过程中使用urlretrieve函数下载文件不完全且避免下载时长过长陷入死循环,并在下载文件的过程中显示下载进度 阅读3740次,点赞0次
- 资源分享 - Ray Tracing Gems II - Next Generation Real-Time Rendering with DXR, Vulkan, and OptiX-Apress 英文高清PDF下载 阅读1715次,点赞0次
- C++STL容器 - std::vector元素访问方式总结 阅读617次,点赞0次
- 深度学习 - CTC解码算法详解 阅读484次,点赞0次
评论
164