python—glob模块函数(搜索目录文件)

目录

glob函数

iglob函数


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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值