glob模块

发布时间 2023-06-20 16:02:03作者: sangern
import glob

# path = r"E:\Python\code\*.txt"  # * 匹配0个或多个字符   匹配后缀名 .txt 的文件
# path = r"E:\Python\code\z?.*"  # ? 匹配 z1.py z9.py ze.py z3.num.sort.py z9.txt # 等文件
# path = r"E:\Python\code\*[0-9]*"  # [] 匹配指定范围内的字符,比如:[0-9]匹配数字,[a-z]匹配小写字母  匹配文件名中有数字的文件。也会匹配到含数字名的文件夹
# path = r"E:\Python\code\*class*"  # 文件名中含有 class 的文件
path2 = r"E:\Python\code\**\*lambda*"  # ** 匹配所有文件、目录、子目录以及子目录中的文件 找出文件名含 lambda 的文件名 (包含子目录)

# lst = glob.glob(path)

lst = glob.glob(path2, recursive=True)  # 匹配子目录下时,要带参数 recursive=True
# recursive=False:代表递归调用,与特殊通配符“**”一同使用,默认为False,False表示不递归调用,True表示递归调用

for id, txt in enumerate(lst, 1):
    print(id, txt)

  

glob是python中的内置模块,该模块主要是用来查找文件与目录。

 

* 匹配0或多个字符
** 匹配所有文件,目录,子目录和子目录里面的文件 (3.5版本新增)
? 匹配一个字符,这里与正则表达式? (正则?匹配前面表达式0次或者1次)
[] 匹配指定范围内的字符,如: [1-9]匹配1至9内的字符
[!] 匹配不在指定范围内的字符

 

glob模块的主要方法是glob(),该方法返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径);返回值:返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。