博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python每日一练0014
阅读量:6436 次
发布时间:2019-06-23

本文共 746 字,大约阅读时间需要 2 分钟。

问题

你想使用 Unix Shell 中常用的通配符(比如 *.py , Dat[0-9]*.csv 等)去匹配文本字符串

解决方案

使用fnmatch模块的fnmatchfnmatchcase函数

>>> import fnmatch>>> print(fnmatch.fnmatch('hello.py', '*.py'))True>>> print(fnmatch.fnmatch('hello.py', 'hell?.py'))True>>> print(fnmatch.fnmatchcase('hello.py', '*.py'))True>>> print(fnmatch.fnmatchcase('hello.py', 'hell?.py'))True

其中fnmatchfnmatchcase的区别是

  • fnmatch(filename, pattern)对大小写的敏感依赖于系统,意思是在判断匹配之前,会对两个参数调用os.path.normcase(path),然后再进行匹配。关于os.path.normcase(path)见:
  • fnmatchcase(filename, pattern)对大小写的敏感不依赖于系统

讨论

fnmatch支持的通配符如下:

Pattern Meaning
* 匹配任意字符串
? 匹配任意一个字符
[seq] 匹配在seq里的任意一个字符
[!seq] 匹配不在seq里的任意一个字符

fnmatch() 匹配能力介于简单的字符串方法和强大的正则表达式之间。 如果在数据处理操作中只需要简单的通配符就能完成的时候,这通常是一个比较合理的方案。

来源

Python Cookbook

关注

欢迎关注我的微信公众号:python每日一练

转载地址:http://bohga.baihongyu.com/

你可能感兴趣的文章
nfs永久挂载与临时挂载
查看>>
linux查看网络链接状况命令之-netstat
查看>>
我的友情链接
查看>>
UIView的layoutSubviews和drawRect方法何时调用
查看>>
mysql主从同步
查看>>
制作最简化的Linux系统
查看>>
我的友情链接
查看>>
使用List的remove方法需要的注意的问题
查看>>
Ansible的介绍、安装、配置及常用模块介绍
查看>>
编码列表
查看>>
eigrp 配置
查看>>
谈一谈 redis 集群
查看>>
concurrent包
查看>>
在Linux下调试Python代码的各种方法
查看>>
centos7塔建MQ服务器
查看>>
Peer authentication failed for user
查看>>
超强的.NET图像工具包VintaSoftImaging.NET SDK更新至v8.6丨75折优惠
查看>>
阿里云上Kubernetes集群联邦
查看>>
洛谷2219:[HAOI2007]修筑绿化带——题解
查看>>
监控webservice信息
查看>>