`
purpen
  • 浏览: 786455 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python fnmatch实现shell风格匹配模式来匹配特定的字符

阅读更多
今天看《Programming Python 3nd Edition》时,偶然看到fnmatch模块,于是查看了它的用法记录在此^_^

Python 的fnmatch说明:

 fnmatch 实现shell patterns表匹配字符串或文件名

1,fnmatch.fnmatch(name, pattern)方法:测试name是否匹配pattern,返回true/false

  eg:
  1. >>>fnmatch.fnmatch('*py','*.py')  
  2. >>>False  
  3.   
  4. >>>fnmatch.fnmatch('tlie.py','*.py')  
  5. >>>True  

注意:匹配样式是unix shell风格的.其中*表示匹配任何单个或多个字符.?表示匹配单个字符;[seq] 匹配单个seq中的字符;[!seq]匹配单个不是seq中的字符.与此相同功能的还有fnmatch.fnmatchcase(name, pat),用法基本相似;

2.fnmatch.filter(names, pat)实现列表特殊字符的过滤或筛选,返回符合匹配模式的字符列表,当然names表示的是列表;

eg:

  1. >>>names = ['dlsf', 'ewro.txt', 'te.py', 'youe.py']  
  2. #匹配以.py结尾的字符  
  3. >>> fnmatch.filter(names, '*.py')  
  4. >>> ['te.py', 'youe.py']  
  5.   
  6. >>> fnmatch.filter(names, '[de]')  
  7. >>> []  
  8. #匹配以d或e开头的字符  
  9. >>>fnmatch.filter(names, '[de]*')  
  10. >>>['dlsf', 'ewro.txt']  

 
当然还有其它的方法(像将shell 风格的匹配模式转换成规则的模式等等),暂时没有用到,在此就不多做说明。


分享到:
评论

相关推荐

    Python通过fnmatch模块实现文件名匹配

    fnmatch 模块主要用于文件名称的匹配,其能力比简单的字符串匹配更强大,但比使用正则表达式相比稍弱。。如果在数据处理操作中,只需要使用简单的通配符就能完成文件名的匹配,则使用 fnmatch 模块是不错的选择。 ...

    Python中fnmatch模块的使用详情

    fnamtch就是filenamematch, 在python中利用符合linuxshell风格的匹配模块来进行文件名的匹配筛选工作。 fnmatch()函数匹配能力介于简单的字符串方法和强大的正则表达式之间,如果在数据处理操作中只需要简单的通配符...

    C/C++实现字符串模糊匹配

    本文分别给大家介绍了2个C++在Linux平台和windows平台下实现字符串模糊匹配的方法,基本的核心思想都是一样的,均是使用fnmatch函数,有需要的小伙伴可以参考下。

    fnMatch:JavaScript模式匹配而无需转译(只需导入和执行)

    这是不使用语法扩展的模式匹配的非常简单的实现。 这意味着您无需编译器即可使用它; 只需将其包含在您的项目/网站中即可。 快速示例: 您可以在OCaml中执行以下操作: let rec fib n = match n with | 0 -> 1 |...

    Python3入门指南_v2.4.pdf

    9.7 fnmatch模块:用于文件名的匹配 145 9.8 tempfile模块: 生成临时文件和临时目录 146 十、面向对象编程 147 10.1 面向对象程序设计思想 147 10.2 面向对象相关术语 148 10.3 类与对象的基本使用 148 10.4 类封装...

    批量根据文件修改时间分类文件工具——Python脚本

    01 实现背景 1、os模块,实现文件的重命名、创建新文件夹操作 2、datetime模块,用于文件时间对比操作 3、fnmatch模块,用于...2、若想实现对任意文件类型的查找操作,可以在fnmatch函数中自行匹配对应文件类型

    Python 如何查找特定类型文件

    今天的文章是介绍如何用 Python 去定位特定类型的文件,会讲到用字符串匹配文件名定位特定文件以及顺带介绍一下遍历目录树的函数,通过今天的这一部分以及之前文章讲到的文件获取属性的操作,可以做很多有意思的事情...

    githasdiff:小型python脚本,用于使用fnmatch模式搜索更改。 主要目标是使构建过程更快

    小型python脚本,使用模式搜索更改以过滤git diff HEAD~ 。 主要目标是使构建流程更快地在构建项目/服务之前检查更改。 找到更改后,脚本以0退出,否则以1退出。 如果脚本收到command ,它将被执行并以command...

    pathmatch:更好的 fnmatch(),在 Rust 中支持像 `.gitignore` 一样的 `**`

    模块接口目前是一个单一的全局函数,没有额外的选项: pub fn pathmatch(pattern: &str, pathstring: &str) -> bool注意:此实现并不完全匹配实际的.gitignore并且包含更多功能(例如{}模式)。快速体验这个想法*....

    Python3遍历目录树实现方法

    本文实例讲述了Python3遍历目录树的方法。分享给大家供大家参考。具体实现方法如下: import os, fnmatch # 检查一个目录,后者某个包含子目录的目录树,并根据某种模式迭代所有文件 # patterns如:*.html,若大小写...

    python3.6.5参考手册 chm

    Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In ...

    wcmatch:Wilcard文件名匹配库

    在某些方面,这些库与Python的内置库相似,因为它们提供了相似的接口来匹配,过滤和glob文件系统。 但是它们还包括Bash的glob中发现的许多功能,例如反斜杠转义,大括号扩展,扩展的glob模式组等。它们还添加了许多...

    Glob.jl:符合Posix的文件名模式匹配

    球状 Glob的此实现基于fnmatch和glob的IEEE Std 1003.1,2004版(开放组基础规范,第6版)。 可以在网上找到其规范: 和 。 请注意,由于这是基于POSIX规范的,因此全局模式中的路径分隔符始终为/ ,转义符始终为\ ...

    Python遍历目录中的所有文件的方法

    Pyhton中我们一般使用os.walk生成器来获取文件夹中的所有文件,这里我们就来详细看一下Python遍历目录中的所有文件的方法,包括一个进阶的利用fnmatch模块进行匹配的方法:

    用Python遍历C盘dll文件的方法

    python 的fnmatch 还真是省心,相比于 java 中的FilenameFilter ,真是好太多了,你完成不需要去实现什么接口。 fnmatch 配合 os.walk() 或者 os.listdir() ,你能做的事太多了,而且用起来相当 easy。 # coding: ...

    dpath-python:一个通过slashedpaths ala xpath访问和搜索字典的python库。 需要新的维护者-查看#136

    它允许您指定glob(通过一些高级的fnmatch.fnmatch魔术来指定bash eglob语法)来访问字典元素,并提供用于过滤这些结果的便利。 sdists在pypi上可用: ://pypi.python.org/pypi/dpath DPATH需要新的维护者。 请参阅...

    艾伯特《Python标准库》中文版

    fnmatch 模块 o 2.17. random 模块 o 2.18. whrandom 模块 o 2.19. md5 模块 o 2.20. sha 模块 o 2.21. crypt 模块 o 2.22. rotor 模块 o 2.23. zlib 模块 o 2.24. code 模块 3. 线程和进程 o 3.1. 概览 o 3.2. ...

    python读取文件名称生成list的方法

    我使用python写了个简单的代码,读取某个文件夹下某个后缀的文件,将文件名生成为文本(csv格式) import fnmatch import os import pandas as pd import numpy as np import sys InputStra = sys.argv[1] ...

Global site tag (gtag.js) - Google Analytics