glob
glob模块
也是Python标准库中一个重要的模块,主要用来查找符合特定规则
的目录和文件,并将搜索的到的结果返回到一个列表中。使用这个模块最主要的原因就是,该模块支持
几个特殊的正则通配符
,用起来贼方便
支持4个常用的通配符
-
*
:匹配0个或多个字符; -
**
:匹配所有文件、目录、子目录和子目录里的文件(3.5版本新增); -
?
:匹配一个字符; -
[]
:匹配指定范围内的字符,如[0-9]匹配数字,[a-z]匹配小写字母;
glob库中主要的3个函数
其实glob库很简单,只有3个主要函数供我们使用,它们分别是glob()
、iglob()
、escape()
函数,因此学习起来特别容易。
-
glob.glob()
:返回符合匹配条件的所有文件的路径; -
glob.iglob()
:返回一个迭代器对象,需要循环遍历获取每个元素,得到的也是符合匹配条件的所有文件的路径; -
glob.escape()
:escape可以忽略所有的特殊字符,就是星号、问号、中括号,用处不大; -
recursive=False
:代表递归调用,与特殊通配符“**”
一同使用,默认为False,False表示不递归调用,True表示递归调用;
1)glob()函数
path1 = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\[0-9].png"
glob.glob(path1)
path2 = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\[0-9a-z].*"
glob.glob(path2)
结果如下:
2)iglob()函数
path1 = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\[0-9].png"
a = glob.iglob(path1)
for i in a:
print(i)
结果如下:
3)escape()函数
通过下方两行代码的对比,可以看出escape()函数只是让*
只表示它本来的意思,而不再具有通配符的作用。
glob.glob('t*')
glob.escape('t*')
结果如下:
总结
通过上面的叙述可以知道,glob库其实并没有很多东西,就记住3个通配符
、3个函数
即可。对于我们来说,glob库就是方便我们查找文件而诞生的,因此我们好好掌握glob()这一个函数,其实就够了,其它的知道、会用就行。
我们还需要注意一点,os库
、shutil库
、glob库
是互补的,我们要善于发挥各自的优势,充分利用它们的优势,帮助我们快速的操作文件和文件夹。