Python的glob模块

Python的glob模块Python 的 glob 模块一 glob 简介 1 glob 的用途 2 glob 中常用通配符二 glob 模块的用法 1 glob 模块中的主要方法 2 方法参数说明 3 glob 和 iglob 区别三 示例 1 创建示例文件夹 2 示例程序四 示例所有源码一 glob 简介 1 glob 的用途 glob 是文件名模式匹配模块 用于根据条件获取指定目录下的文件列表 类似于文件搜索

一、glob简介

1.glob的用途

 glob是文件名模式匹配模块,用于根据条件获取指定目录下的文件列表,类似于文件搜索。

2.glob中常用通配符

 ①通配符’*’:零个或多个字符匹配文件名;
 ②通配符’?’:单个字符匹配文件名;
 ③通配符’[]’:匹配指定范围内的文件名,如: [1-9]匹配1至9内的字符;
 ④通配符’[!]’:匹配不在指定范围内的文件名;
 ⑤通配符’’:匹配指定路径下的所有子目录和当前目录里的文件名;
 注:
 a.①~④都是在当前目录下匹配;
 b.⑤是在当前目录以及子目录里匹配,相当于文件夹递归查找;
 c.⑤在使用时必须将函数参数recursive设置为True,否则无效;
 d.⑤是python3.5新加的功能;

二、glob模块的用法

1.glob模块中的主要方法

 glob模块中主要有glob(pathname, recursive=False)和iglob(pathname, recursive=False)两个方法,两个方法的参数相同。

2.方法参数说明

3.glob()和iglob()区别

 glob()返回所有匹配的文件名列表,iglob(iterator)是获取一个迭代器对象,使用时逐个获取匹配文件名。

三、示例

1.创建示例文件夹

 globMain
 ——globMain1.txt
 ——globMain2.txt
 …
 ——globMain3.txt
 ——glob1
 ————glob1.txt
 ————glob2.txt
 …
 ————glob9.txt
 ——glob2
 ————glob1.txt
 ————glob2.txt
 …
 ————glob9.txt

2.示例程序

1.用通配符’*‘获取指定目录(不包含子目录)下的所有’.txt’文件

fileLs=glob.glob(r'globMain/*.txt') print(u"eg1:获取指定目录(不包含子目录)下的所有'.txt'文件") for file in fileLs: print(file) 

在这里插入图片描述
2.#用通配符’’,获取指定目录(包含子目录)下的所有’.txt’文件,recursive必须True

fileLs=glob.glob('globMain//*.txt',recursive=True) print(os.linesep,u"eg2:获取指定目录(包含子目录)下的所有'.txt'文件") for file in fileLs: print(file) 

在这里插入图片描述
3.用通配符’*'代替子目录名

fileLs=glob.glob('globMain/*/*.txt') print(os.linesep,u"eg3:用通配符'*'代替子目录名") for file in fileLs: print(file) 

在这里插入图片描述
4.#用通配符’?'提取globMain下的globMain?.txt

fileLs=glob.glob('globMain/globMain?.txt') print(os.linesep,u"eg4:通配符'?'提取globMain下的globMain?.txt") for file in fileLs: print(file) 

在这里插入图片描述
5.用通配符’[]’,选取文件名globMain[5-9].txt

fileLs=glob.glob('globMain/globMain[5-9].txt') print(os.linesep,u"eg5:用通配符'[]',选取文件名globMain[5-9].txt") for file in fileLs: print(file) 

在这里插入图片描述
6.#用通配符’[!]’,选取文件名globMain[!5-9].txt

fileLs=glob.glob('globMain/globMain[!5-9].txt') print(os.linesep,u"eg6:用通配符'[!]',选取文件名globMain[!5-9].txt") for file in fileLs: print(file) 

在这里插入图片描述
7.iglob()用迭代器逐个获取文件

files=glob.iglob('globMain/*.txt') print(os.linesep,u"eg7:iglob()用迭代器逐个获取文件") for file in files: print(file) 

在这里插入图片描述

四、示例所有源码

 # encoding:utf-8 import glob import os ''' 1.通配符'*':零个或多个字符匹配 2.通配符'?':单个字符匹配 3.通配符'[]':范围通配符,获取一定范围的文件列表 4.通配符'[!]':在3的基础上取非,即获取不在这个范围的文件列表 5.通配符'':匹配指定路径下的所有子目录和当前目录里的文件名; ''' #用通配符'*'获取指定目录(不包含子目录)下的所有'.txt'文件 fileLs=glob.glob(r'globMain/*.txt') print(u"eg1:获取指定目录(不包含子目录)下的所有'.txt'文件") for file in fileLs: print(file) #用通配符'',获取指定目录(包含子目录)下的所有'.txt'文件,recursive必须True fileLs=glob.glob('globMain//*.txt',recursive=True) print(os.linesep,u"eg2:获取指定目录(包含子目录)下的所有'.txt'文件") for file in fileLs: print(file) #用通配符'*'代替子目录名 fileLs=glob.glob('globMain/*/*.txt') print(os.linesep,u"eg3:用通配符'*'代替子目录名") for file in fileLs: print(file) #用通配符'?'提取globMain下的globMain?.txt fileLs=glob.glob('globMain/globMain?.txt') print(os.linesep,u"eg4:通配符'?'提取globMain下的globMain?.txt") for file in fileLs: print(file) #用通配符'[]',选取文件名globMain[5-9].txt fileLs=glob.glob('globMain/globMain[5-9].txt') print(os.linesep,u"eg5:用通配符'[]',选取文件名globMain[5-9].txt") for file in fileLs: print(file) #用通配符'[!]',选取文件名globMain[!5-9].txt fileLs=glob.glob('globMain/globMain[!5-9].txt') print(os.linesep,u"eg6:用通配符'[!]',选取文件名globMain[!5-9].txt") for file in fileLs: print(file) #iglob()用迭代器逐个获取文件 files=glob.iglob('globMain/*.txt') print(os.linesep,u"eg7:iglob()用迭代器逐个获取文件") for file in files: print(file) 
今天的文章 Python的glob模块分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-07 09:06
下一篇 2024-12-07 08:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/80305.html