Python查找文件
1. 利用字符串的前缀和后缀匹配查找文件#
- str.startswith()
- star.endswith()
2.使用fnmatch#
- fnmatch 判断文件名是否符合特定模式
- fnmatchchcase 判断文件名是否符合特定模式,不区分大小写
- filter 返回输入列表中,符合特定模式的文件名列表
- translate 将通配符模式换成正则表达式
fnmatch支持的通配符如下:
- * 匹配任何数量的字符
- ? 匹配单个字符
- [seq] 匹配seq中的字符
- [!seq] 匹配出seq以外的字符
fnmatch
filter
filter每次对一组文件名进行匹配,而不是单个,它需要传入文件名列表作为第一个参数
3. 使用glob#
glob是标准库
4. 使用os.walk遍历目录树#
walk函数会遍历当前目录及其子目录,并且对于没一个目录,返回一个三元组(dirpath,dirnames,filenames),
dirpath是当前目录,dirnames是当前目录下的所有子目录,filenames是当前目录下的所有文件。
案列:查找目录及其子目录中的的图像文件
综合案列:#
一个通用的查询文件的python脚本
fnmatch_file.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/usr/bin/env python # coding=utf-8 import os import fnmatch def is_file_match(filename, patterns): for pattern in patterns: if fnmatch.fnmatch(filename, pattern): return True return False def find_specific_files(root, patterns = [ '*' ], exclude_dirs = []): for root, dirnames, filenames in os.walk(root): for filename in filenames: if is_file_match(filename, patterns): if filename in filenames: yield os.path.join(root, filename) for d in exclude_dirs: if d in dirnames: dirnames.remove(d) |
1. 查找目录下的所有文件
2.查找所有图片
3. 除开test2以外的所有图片
4. 查找目录及子目录下最大的十个文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了