Python小技巧【1】——获取指定文件夹下的所有文件【glob模块】

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

你可能感兴趣的:(Python,Python小技巧,python,开发语言)