glob模块是Python标准库中一个重要的模块,主要用来查找符合特定规则的目录和文件,并将搜索的到的结果返回到一个列表中。
glob模块概述
1、常用函数glob()
返回符合匹配条件的所有文件的路径。
file_list = glob.glob(pathname=path, recursive=False)
2、重要参数recursive
recursive参数代表是否递归调用,与特殊通配符**一同使用,默认为False,False表示不递归调用,True表示递归调用。
3、四个通配符——【*,**,?,[]】
四个通配符的用法
* 代表0个或多个字符。
例如:获取文件夹目录下的所有文件。
path = r'C:\Users\Administrator\Desktop\map\*' file_list = glob.glob(path) for
file in file_list: print(file) # 结果
C:\Users\Administrator\Desktop\map\FME导出.gdb
C:\Users\Administrator\Desktop\map\next
C:\Users\Administrator\Desktop\map\晋安区.dwg
C:\Users\Administrator\Desktop\map\晋安区2.dwg
C:\Users\Administrator\Desktop\map\(补)任务下达.xlsx
获取文件夹目录下的dwg文件。
path = r'C:\Users\Administrator\Desktop\map\*.dwg' file_list = glob.glob(path)
for file in file_list: print(file) # 结果
C:\Users\Administrator\Desktop\map\晋安区.dwg
C:\Users\Administrator\Desktop\map\晋安区2.dwg
** 匹配所有文件、目录、子目录和子目录里的文件(recursive参数设为True)。
path = r'C:\Users\Administrator\Desktop\map\**' file_list =
glob.glob(path,recursive=True) for file in file_list: print(file) # 结果
C:\Users\Administrator\Desktop\map\
C:\Users\Administrator\Desktop\map\FME导出.gdb
C:\Users\Administrator\Desktop\map\next
C:\Users\Administrator\Desktop\map\next\next2
C:\Users\Administrator\Desktop\map\next\next2\other.txt
C:\Users\Administrator\Desktop\map\next\晋安区new.dwg
C:\Users\Administrator\Desktop\map\晋安区.dwg
C:\Users\Administrator\Desktop\map\晋安区2.dwg
C:\Users\Administrator\Desktop\map\(补)任务下达.xlsx
? 代表一个字符
path = r'C:\Users\Administrator\Desktop\map\晋安?.dwg' file_list =
glob.glob(path) for file in file_list: print(file) # 结果
C:\Users\Administrator\Desktop\map\晋安区.dwg
[] 匹配指定范围内的字符,如[0-9]匹配数字,[a-z]匹配小写字母。
path = r'C:\Users\Administrator\Desktop\map\[a-z]*' file_list =
glob.glob(path) for file in file_list: print(file) # 结果
C:\Users\Administrator\Desktop\map\FME导出.gdb
C:\Users\Administrator\Desktop\map\next
其它用法
查找本级所有的文件,用法类似os.listdir()。
path = r'..\*' file_list = glob.glob(path) for file in file_list: print(file)
# 结果 .\0-基础工具类 .\1-属性表处理 .\2-要素处理 .\3-数据处理 .\test.py
查找上一级所有的文件
path = r'..\*' file_list = glob.glob(path) for file in file_list: print(file)
# 结果 ..\0-GisPro工程 ..\1-GisPro_pytool ..\2-工具文件 ..\cc工具箱.tbx ..\cc工具箱使用文档.indd