Python 实用技巧之利用Shell通配符做字符串匹配
作者:IT派森 发布时间:2021-07-18 22:57:16
标签:python,shell,通配符,字符串,匹配
1、需求
当工作在UNIX Shell下时,我们想使用常见的通配符模式(即:.py,Dat[0-9].csv等)来对文本做匹配。
2、解决方案
fnmatch模块提供了两个函数:fnmatch()
和fnmatchcase()
,可用来执行这样的匹配,使用起来非常简单。
实例:
from fnmatch import fnmatch,fnmatchcase
print(fnmatch('mark.txt','*.txt'))
print(fnmatch('mark.txt','?ark.txt'))
print(fnmatch('mark2018.txt','?ark201[0-9].txt'))
运行结果:
True
True
True
一般来说,fnmatch()的大小写匹配规则与底层文件相同,例如:
print(fnmatch('mark.txt','*.TXT'))
上面代码,在Max下运行为False,在Windows下运行为True。
如果这个大小写区别对我们很重要,我们就应该使用fnmatchcase()。它会完全根据我们提供的大小写方法来做匹配。
实例:
from fnmatch import fnmatch,fnmatchcase
print(fnmatchcase('mark.txt','*.TXT'))
结果:
False
关于这些函数,一个常被忽略的特性是它们在处理非文件名式的字符串时的 * 途。
例如,
from fnmatch import fnmatchcase
#假设有一组街道地址,就像这样:
address=[
'111 A 上海 SH',
'112 B 上海 SH',
'113 C 上海 SH',
'124 D 北京 BJ',
'138 E 北京 BJ',
'145 F 北京 BJ',
]
result=[addr for addr in address if fnmatchcase(addr,'1[1-3][1-5]*BJ')]
print(result)
运行结果:
['124 D 北京 BJ']
3、分析
fnmatch完成的匹配操作有点介于简单的字符串方法和全功能的正则表达式之间。
如果实际上是想编写匹配文件名的代码,那应该使用glob模块来完成,后面会介绍到的。
总结
以上所述是小编给大家介绍的Python 实用技巧之利用Shell通配符做字符串匹配,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.jianshu.com/p/1749af11757f
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 以下代码可自动登录12306 - 包括输入用户名密码以及自动识别验证码并点击验证码登陆。该源码需要稍作修改:把 username
- icech: 在制作网页的时候,常常要遇到制作虚线表格的问题,下面的文章就能解决这个问题。方法一:作一个1X2的图。半黑半白,再利用表格作成
- import time, randomclass GuessNum: def __init__(self
- 代码#!/usr/bin/env python# -*- coding: utf-8 -*-# @File : HtmlParser.py#
- 首先我很不喜欢验证码这东西。但现在越来越多的网站使用验证码来抵御spam的冲击。太揪心了。背景介绍验证码的技术叫CAPTCHA验证,CAPT
- 装饰器简介:装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方
- 1.文档对象模型(DOM)DOM是HTML和XML文档的编程基础,它定义了处理执行文档的途径。编程者可以使用DOM增加文档、定位文档结构、填
- 1.对于RGB三通道图片,直接用两层for循环的话,效率比较低2.可以先将RGB图片转为灰度图片,再利用numpy.where的广播机制统计
- Protocol Buffers (类似XML的一种数据描述语言)最新版本2.3里,protoc—py_out命令只生成原生的P
- OS 模块在讲解包模块时我们提到通过 sys 模块进行查看全局包路径查看于注册,今天我们尝试了解下OS模块,这个模块主要
- 本文实例讲述了Python使用django获取用户IP地址的方法。分享给大家供大家参考。具体如下:函数实现:def get_client_i
- 人在学校,身不由己。总有一些奇奇怪怪的学习任务,需要我们刷够一定的时长去完成,但这很多都是不太令人感兴趣的文字或是视频,而这些课都有共同的特
- 在大家的日常python程序的编写过程中,都会有自己解决某个问题的解决办法,或者是在程序的调试过程中,用来帮助调试的程序公式。小编通过上万行
- Python 中的 timeit 模块可以用来测试一段代码的执行耗时,如一个变量赋值语句的执行时间,一个函数的运行时间等。timeit 模块
- asp使用WScript.Shell获取电脑的网络配置信息Option Explicit Dim WSHShe
- 第一种:i=0sum=0a=0while i<102: if i>=1 and i%4==1: sum+=i eli
- 一、KNN概述简单来说,K-近邻算法采用测量不同特征值之间的距离方法进行分类优点:精度高、对异常值不敏感、无数据输入假定缺点:计算复杂度高、
- 例如1441,那么会产生“运行时错误”,报错信息类似下面:SessionID 错误 'ASP 0164 : 80004005'
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 18 - Classes part IClass(
- Mac系统上虽然自带PHP和Apache,但是有时不是我们想要的版本呢。今天我们就在macOS Sierra(10.12.1)上安装比较新的