使用字符串方法

.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_文件名模式匹配方法相关推荐

  1. Py之glob: glob库文件名模式匹配+返回所有匹配的文件路径列表库的简介、使用方法之详细攻略

    Py之glob: glob库文件名模式匹配+返回所有匹配的文件路径列表库的简介.使用方法之详细攻略 目录 glob库的简介 glob库的使用方法 1.单个字符通配符:用问号(?)匹配任何单个的字符.

  2. python下载文件到指定目录-Python获取指定文件夹下的文件名的方法

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...

  3. Windows系统C语言获取文件夹来的所有文件名的方法

    Windows系统C语言获取文件夹来的所有文件名的方法,代码如下: #include <io.h> #include <stdio.h> #include <direct ...

  4. python列表批量 修改_python实现多进程按序号批量修改文件名的方法示例

    本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...

  5. python修改文件名字数字_python实现多进程按序号批量修改文件名的方法示例

    本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...

  6. linux sed名宁,Linux shell利用sed批量更改文件名的方法

    微子网络与大家分享了在Linux shell中使用sed批量更改文件名的方法.希望你看完这篇文章有所收获.大家一起讨论一下. 示例 去除特定字符 目标:把2017-01-01.jpg和2018-01- ...

  7. php 获取所有子目录名,php读取目录及子目录下所有文件名的方法,_PHP教程

    php读取目录及子目录下所有文件名的方法, 本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的 ...

  8. php读取目录及子目录下所有文件名的方法

    本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下: $dir= ...

  9. linux 批量更换文件名,Linux下批量修改文件名的方法

    Linux下批量修改文件名的方法 在Linux环境下修改文件名可以有不同的命令方式,比如rename.mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改 ...

最新文章

  1. 龙岗网络推广解析有关网站SEO排名上去了,但没实际性点击的问题
  2. 微分先行PID控制算法用C语言实现!
  3. 淘宝如何保障业务稳定性——诺亚(Noah)自适应流控
  4. python是强定义语言吗_python是强类型语言吗
  5. 记一次es和mq的netty冲突
  6. CAS 5.1.x 的搭建和使用(四)—— 配置使用HTTP协议访问的服务端
  7. java 双分派_双分派 和 访问者模式详解 | 学步园
  8. 忘记commit也会造成select查询的性能问题
  9. OpenCV之图像伪彩色增强
  10. gitlab 503 错误的解决方案
  11. 【Day3.1】拥有个奇怪索道的拷王宫
  12. 下载B(bilibili)站视频
  13. Cyberpunk!特斯拉发布皮卡,造型雷翻众人
  14. html和ui关系,ue和ui的区别是什么
  15. 【LeedCode每周总结】还在犹豫怎么刷LeedCode有没有用?快来加入每日刷题卷进大厂吧,冲冲冲
  16. P1008 [NOIP1998 普及组] 三连击 题解
  17. SQL Server 导入.mdf和.ldf文件
  18. 从零开始,一步一步编写网页
  19. C语言网:神奇的fans
  20. Android通过GET方式访问网络页面

热门文章

  1. 眼底血管分割——毕业论文
  2. 「 Flutter 项目实战 」设计企业级项目入口 main.dart 设计与实现 ( GSYGithubApp 源码解读·二 )
  3. 软件测试菜鸟入门攻略
  4. 苹果手机如何恢复微信聊天记录?MMRecovery官方教程分享
  5. vs2019出现《未加载 wntdll.pbd》 ,解决方案
  6. 大数据挖掘企业服务平台
  7. 【游戏开发实战】Unity UGUI制作雷达图/天赋图/属性图/能力图,因为太怕痛就全点了防御力
  8. 从WPS被曝锁死用户文件来看,我们需要怎样的企业文档管理软件
  9. 新手上路 Vue腾讯云开发实战项目 问卷调查
  10. 【KALI网络安全】DNS攻击(劫持和欺骗)与网络钓鱼的模拟和预防(1)