Python_文件名模式匹配方法
使用字符串方法
.startswith() 和 .endswith() 是两个非常有用的寻找特定扩展名文件的方法。
for f_name in os.listdir('some_directory'):if f_name.endswith('.txt'):print(f_name)
使用fnmatch进行简单文件名模式匹配
字符串方法匹配的能力是有限的。fnmatch 有对于模式匹配有更先进的函数和方法。
我们将考虑使用 fnmatch.fnmatch() ,这是一个支持使用 * 和 ? 等通配符的函数。例如,使用 fnmatch 查找目录中所有 .txt 文件,我们可以这样做:
import os
import fnmatchfor f_name in os.listdir('some_directory'):if fnmatch.fnmatch(f_name, '*.txt'):print(f_name)
假设我们想要查找符合特定掉件的 .txt 文件。例如,你可能指向找到包含单次 data 的 .txt文件,一组下划线之间的数字,以及文件名中包含单词 backup 。就类似于 data_01_backup, data_02_backup, 或 data_03_backup 。
我们可以这样做:
import os
import fnmatchfor f_name in os.listdir('some_directory'):if fnmatch.fnmatch(f_name, 'data_*_backup.txt'):print(f_name)
这里就仅仅打印出匹配 data_*_backup.txt 模式的文件名称。模式中的 * 将匹配任何字符。
使用glob进行文件名模式匹配
这里有一个使用 glob 模块在当前目录下查询所有Python代码文件:
import globprint(glob.glob('*.py'))
glob.glob(’*.py’) 搜索当前目录中具有 .py 扩展名的文件,并且将它们以列表的形式返回。 glob 还支持 shell 样式的通配符来进行匹配 :
import globfor name in glob.glob('*[0-9]*.txt'):print(name)
这将找到所有文件名中包含数字的文本文件(.txt) :
data_01.txt
data_01_backup.txt
data_02.txt
data_02_backup.txt
data_03.txt
data_03_backup.txt
glob 也很容易在子目录中递归的搜索文件:
import globfor name in glob.iglob('**/*.py', recursive=True):print(name)
这里例子使用了 glob.iglob() 在当前目录和子目录中搜索所有的 .py 文件。
Python_文件名模式匹配方法相关推荐
- Py之glob: glob库文件名模式匹配+返回所有匹配的文件路径列表库的简介、使用方法之详细攻略
Py之glob: glob库文件名模式匹配+返回所有匹配的文件路径列表库的简介.使用方法之详细攻略 目录 glob库的简介 glob库的使用方法 1.单个字符通配符:用问号(?)匹配任何单个的字符.
- python下载文件到指定目录-Python获取指定文件夹下的文件名的方法
本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...
- Windows系统C语言获取文件夹来的所有文件名的方法
Windows系统C语言获取文件夹来的所有文件名的方法,代码如下: #include <io.h> #include <stdio.h> #include <direct ...
- python列表批量 修改_python实现多进程按序号批量修改文件名的方法示例
本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...
- python修改文件名字数字_python实现多进程按序号批量修改文件名的方法示例
本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...
- linux sed名宁,Linux shell利用sed批量更改文件名的方法
微子网络与大家分享了在Linux shell中使用sed批量更改文件名的方法.希望你看完这篇文章有所收获.大家一起讨论一下. 示例 去除特定字符 目标:把2017-01-01.jpg和2018-01- ...
- php 获取所有子目录名,php读取目录及子目录下所有文件名的方法,_PHP教程
php读取目录及子目录下所有文件名的方法, 本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的 ...
- php读取目录及子目录下所有文件名的方法
本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下: $dir= ...
- linux 批量更换文件名,Linux下批量修改文件名的方法
Linux下批量修改文件名的方法 在Linux环境下修改文件名可以有不同的命令方式,比如rename.mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改 ...
最新文章
- 龙岗网络推广解析有关网站SEO排名上去了,但没实际性点击的问题
- 微分先行PID控制算法用C语言实现!
- 淘宝如何保障业务稳定性——诺亚(Noah)自适应流控
- python是强定义语言吗_python是强类型语言吗
- 记一次es和mq的netty冲突
- CAS 5.1.x 的搭建和使用(四)—— 配置使用HTTP协议访问的服务端
- java 双分派_双分派 和 访问者模式详解 | 学步园
- 忘记commit也会造成select查询的性能问题
- OpenCV之图像伪彩色增强
- gitlab 503 错误的解决方案
- 【Day3.1】拥有个奇怪索道的拷王宫
- 下载B(bilibili)站视频
- Cyberpunk!特斯拉发布皮卡,造型雷翻众人
- html和ui关系,ue和ui的区别是什么
- 【LeedCode每周总结】还在犹豫怎么刷LeedCode有没有用?快来加入每日刷题卷进大厂吧,冲冲冲
- P1008 [NOIP1998 普及组] 三连击 题解
- SQL Server 导入.mdf和.ldf文件
- 从零开始,一步一步编写网页
- C语言网:神奇的fans
- Android通过GET方式访问网络页面
热门文章
- 眼底血管分割——毕业论文
- 「 Flutter 项目实战 」设计企业级项目入口 main.dart 设计与实现 ( GSYGithubApp 源码解读·二 )
- 软件测试菜鸟入门攻略
- 苹果手机如何恢复微信聊天记录?MMRecovery官方教程分享
- vs2019出现《未加载 wntdll.pbd》 ,解决方案
- 大数据挖掘企业服务平台
- 【游戏开发实战】Unity UGUI制作雷达图/天赋图/属性图/能力图,因为太怕痛就全点了防御力
- 从WPS被曝锁死用户文件来看,我们需要怎样的企业文档管理软件
- 新手上路 Vue腾讯云开发实战项目 问卷调查
- 【KALI网络安全】DNS攻击(劫持和欺骗)与网络钓鱼的模拟和预防(1)