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(),该方法返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径);返回值:返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。
标签:文件,code,匹配,glob,子目录,模块,txt From: https://www.cnblogs.com/sangern/p/17493878.html