目录
glob模块函数用于从目录通配符搜索中生成文件列表,可以快速获取一定格式的文件夹或文件路径的列表。glob匹配模式较少,一共有三种通配符:*、?、[],属于轻量级。路径分隔符(Unix的/,Windows的\)不会被匹配。glob模块中的两个主要函数glob、iglob。
参数:
参数recursive参数需要与**结合使用,以便递归地查找出所有子文件中的文件夹及文件路径
匹配模式:
glob函数
glob.glob方法,根据传入的匹配模式,返回对应的文件夹和文件名列表,如下目录结构
from glob import glob, iglob
print(glob(r'D:\zhuomian\Test\**', recursive=True))
# ['D:\\zhuomian\\Test\\', 'D:\\zhuomian\\Test\\demo', 'D:\\zhuomian\\Test\\demo\\demo.py', 'D:\\zhuomian\\Test\\demo\\get_toast.py', 'D:\\zhuomian\\Test\\demo\\jietu.py', 'D:\\zhuomian\\Test\\demo\\login.py', 'D:\\zhuomian\\Test\\demo\\report', 'D:\\zhuomian\\Test\\demo\\report\\imgs', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664667519.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664668703.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664669729.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664670630.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664671623.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664678394.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664680591.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664682738.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664684867.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664687018.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664689116.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664691248.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664693386.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664695573.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664697855.jpg', 'D:\\zhuomian\\Test\\demo\\report\\imgs\\img-1642664700063.jpg', 'D:\\zhuomian\\Test\\demo\\report\\index.html', 'D:\\zhuomian\\Test\\demo\\report\\record.json', 'D:\\zhuomian\\Test\\demo\\report\\simplehttpserver.py', 'D:\\zhuomian\\Test\\demo\\report\\start.bat', 'D:\\zhuomian\\Test\\demo\\settings', 'D:\\zhuomian\\Test\\demo\\settings\\connect_app.py', 'D:\\zhuomian\\Test\\demo\\settings\\__pycache__', 'D:\\zhuomian\\Test\\demo\\settings\\__pycache__\\connect_app.cpython-38.pyc', 'D:\\zhuomian\\Test\\demo\\wenzi_yy', 'D:\\zhuomian\\Test\\demo\\wenzi_yy\\de1.py', 'D:\\zhuomian\\Test\\demo\\wenzi_yy\\de2.py', 'D:\\zhuomian\\Test\\demo\\wifi.py', 'D:\\zhuomian\\Test\\test01.txt', 'D:\\zhuomian\\Test\\test02.txt', 'D:\\zhuomian\\Test\\test1.docx', 'D:\\zhuomian\\Test\\test1.txt']
print(glob(r'D:\zhuomian\Test\**', recursive=False))
# ['D:\\zhuomian\\Test\\demo', 'D:\\zhuomian\\Test\\test01.txt', 'D:\\zhuomian\\Test\\test02.txt', 'D:\\zhuomian\\Test\\test1.docx', 'D:\\zhuomian\\Test\\test1.txt']
print(glob(r'D:\zhuomian\Test\*', recursive=True))
# ['D:\\zhuomian\\Test\\demo', 'D:\\zhuomian\\Test\\test01.txt', 'D:\\zhuomian\\Test\\test02.txt', 'D:\\zhuomian\\Test\\test1.docx', 'D:\\zhuomian\\Test\\test1.txt']
print(glob(r'D:\zhuomian\Test\*.docx', recursive=True))
# ['D:\\zhuomian\\Test\\test1.docx']
print(glob(r'D:\zhuomian\Test\test0?.txt', recursive=True))
# ['D:\\zhuomian\\Test\\test01.txt', 'D:\\zhuomian\\Test\\test02.txt']
print(glob(r'D:\zhuomian\Test\test*.txt', recursive=True))
# ['D:\\zhuomian\\Test\\test01.txt', 'D:\\zhuomian\\Test\\test02.txt', 'D:\\zhuomian\\Test\\test1.txt']
print(glob(r'D:\zhuomian\Test\*[0-1]*', recursive=True)) # [0-9]匹配数字
# ['D:\\zhuomian\\Test\\test01.txt', 'D:\\zhuomian\\Test\\test02.txt', 'D:\\zhuomian\\Test\\test1.docx', 'D:\\zhuomian\\Test\\test1.txt']
print(glob(r'D:\zhuomian\Test\*[o]', recursive=True))
# ['D:\\zhuomian\\Test\\demo']
print(glob(r'D:\zhuomian\Test\*[!o]', recursive=True))
# ['D:\\zhuomian\\Test\\test01.txt', 'D:\\zhuomian\\Test\\test02.txt', 'D:\\zhuomian\\Test\\test1.docx', 'D:\\zhuomian\\Test\\test1.txt']
iglob函数
glob.iglob方法,根据传入的匹配模式,返回对应的文件夹和文件名的迭代器
from glob import iglob
paths = iglob(r'D:\zhuomian\Test\**', recursive=True)
for path in paths:
print(path)
D:\zhuomian\Test\
D:\zhuomian\Test\demo
D:\zhuomian\Test\demo\demo.py
D:\zhuomian\Test\demo\get_toast.py
D:\zhuomian\Test\demo\jietu.py
D:\zhuomian\Test\demo\login.py
D:\zhuomian\Test\demo\report
D:\zhuomian\Test\demo\report\imgs
D:\zhuomian\Test\demo\report\imgs\img-1642664667519.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664668703.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664669729.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664670630.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664671623.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664678394.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664680591.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664682738.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664684867.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664687018.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664689116.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664691248.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664693386.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664695573.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664697855.jpg
D:\zhuomian\Test\demo\report\imgs\img-1642664700063.jpg
D:\zhuomian\Test\demo\report\index.html
D:\zhuomian\Test\demo\report\record.json
D:\zhuomian\Test\demo\report\simplehttpserver.py
D:\zhuomian\Test\demo\report\start.bat
D:\zhuomian\Test\demo\settings
D:\zhuomian\Test\demo\settings\connect_app.py
D:\zhuomian\Test\demo\settings\__pycache__
D:\zhuomian\Test\demo\settings\__pycache__\connect_app.cpython-38.pyc
D:\zhuomian\Test\demo\wenzi_yy
D:\zhuomian\Test\demo\wenzi_yy\de1.py
D:\zhuomian\Test\demo\wenzi_yy\de2.py
D:\zhuomian\Test\demo\wifi.py
D:\zhuomian\Test\test01.txt
D:\zhuomian\Test\test02.txt
D:\zhuomian\Test\test1.docx
D:\zhuomian\Test\test1.txt