python-glob查找特定文件
python-glob查找特定文件
glob模块可以查找当前脚本目录(相对路径)下或者某一指定目录(绝对路径)符合特定规则的文件路径名
glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。
只用到三个匹配符
* 通配符:匹配0个或多个字符;
? 单个字符通配符:匹配单个字符;
[] 字符范围:匹配指定范围内的字符,如:[0-9]匹配数字。
通配符 | 功能 | ||
---|---|---|---|
* | 匹配0或多个字符 | ||
** | 匹配所有文件,目录,子目录和子目录里面的文件 | ||
? | 匹配一个字符,这里与正则表达式? (正则?匹配前面表达式0次或者1次) | ||
[] | 匹配指定范围内的字符,如: [1-9]匹配1至9内的字符 | ||
[!] | 匹配不在指定范围内的字符 |
glob.glob
返回所有匹配的文件路径列表。
只有一个参数 pathname :定义了文件路径匹配规则;可以是绝对路径,可以是相对路径
import glob
#获取指定目录下的所有图片
print (glob.glob(r"/home/qiaoyunhao/*/*.jpg"))#加上r让字符串'/'不产生转义
#获取上级目录的所有.py文件
print (glob.glob(r'../*.py')) #相对路径
glob.iglob
获取一个生成器对象,使用它可以逐个获取匹配的文件路径名。
与 glob.glob()的区别: glob.glob()同时获取所有的匹配路径;而 glob.iglob()一次只获取一个匹配路径
import glob
#父目录中的.py文件
f = glob.iglob(r'../*.py')
print(type(f)) # <class 'generator'>
print (f) #<generator object iglob at 0x00B9FF80>
for py in f:
print (py)
案例
当前路径下所有py文件
for fname in glob.glob("**/*.py",recursive=True):
print(fname)
当前路径文件tmp下py文件
for fname in glob.glob("./tmp/*.py"):
print(fname)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律