python模块学习之glob模块
glob模块
功能描述:glob模块可以使用Unix shell风格的通配符匹配符合特定格式的文件和文件夹,跟windows的文件搜索功能差不多。glob模块并非调用一个子shell实现搜索功能,而是在内部调用了os.listdir()和fnmatch.fnmatch()。查看我之前写的fnmatch。
glob模块共包含以下3个函数:glob,isglob和escape。
glob(pathname, recursive=False)
第一个参数为需要匹配的字符串.(尽量在字符串前加r)
第二个参数代表递归调用,与特殊通配符“**”一同使用,默认为False。
路径格式可以是绝对路径 /usr/src/Python-1.5/Makefile ,也可以是相对路径../../Tools//.gif。
在3.5版本之后,glob函数支持一个特殊的通配符“**”,该通配符可以匹配指定路径里所有文件和目录,包括子目录里的所有文件和目录。使用这个通配符必须加上recursive=True参数。
(在有复杂目录结构的情况下使用该通配符可能会导致性能下降,拖累整个程序的运行,需谨慎使用!)
例如,目录中包含文件: 1.gif, 2.txt, card.gif里面含有子目录sub,sub目录里含有3.txt.
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
>>> glob.glob('**/*.txt', recursive=True)
['2.txt', 'sub/3.txt']
>>> glob.glob('./**/', recursive=True)
['./', './sub/']
需要注意的是如果,文件名的前面含有点像这样,card.gif 和.card.gif,需要下面这样的方式处理通配符前加.
>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.*.gif')
['.card.gif']
iglob(pathname, recursive=False)
参数与glob()一致。
返回一个迭代器,遍历该迭代器的结果和glob()的返回结果一致。
escape(pathname)
转义所有的特殊字符('?','*'和'['])。如果您想匹配任意可能包含特殊字符的字符串,这将非常有用。驱动器/ UNC共享点中的特殊字符不会转义,例如在Windows系统上 escape('//?/c:/Quo vadis?.txt') 将返回 '//?/c:/Quo vadis[?].txt'。但是这些非法字符是无法创建文件的所以一般也就用来测试用了。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
异步网络模块之aiohttp(一)
平时我们也许用的更多的是requests模块,或者是requests_hml模块,但是他们都属于阻塞类型的不支持异步,速度很难提高,于是后来出现了异步的grequests,开始了异步网络请求,速度得到了大大的提升,但是今天我们要说的另外的一个比较异步网络请求模块-aiohttp。 什么是aiohhtp? 要学习一个模块,首先要知道这个模块都能做什么,我们从官网上找到了关于aiohttp的解释。 Asynchronous HTTP Client/Server for asyncio and Python. Supports both Client and HTTP Server. Supports both Server WebSockets and Client WebSockets out-of-the-box without the
- 下一篇
python数据解析模块之glom模块的使用(一)
glom模块的使用 简单说下glom模块主要是处理结构化数据用的,安装简单pip install glom即可,下面就glom的方法参数做例子讲解。 glom 和模块同名的glom方法使用方法: .glom(target, spec, **kwargs) target参数是结构化数据,一般是json嵌套类型。 spec参数是定义模板 **kwargs包含键值类型的参数:default,skip_exc,scope 我们来看个简单的例子、 target={'a':{'b':{'c':{'d':{'e':[1,2,3,4,5,6,7]}}}}} spec='a.b.c.d.e'output=glom(target,spec)print(output) #输出[1,2,3,4,5,6,7] 我们尝试下更多玩法: target={'a':{'b':{'c':{'d':{'e':[1,2,3,4,5,6,7]}}}}} spec={'aa':'a.b.c.d.e'}output=glom(target,spec)print(output) #输出{'aa':[1,2,3,4,5,6,7]} ta...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题