Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作


Posted in Python onApril 20, 2018

本文实例讲述了Python在字符串的开头或结尾处进行文本匹配操作。分享给大家供大家参考,具体如下:

问题:在字符串的开头或结尾处按照指定的文本模式做检查,例如检查文件的扩展名、URL协议类型等;

解决方法:使用str.startswith()str.endswith()方法

>>> filename='spam.txt'
>>> filename.endswith('.txt')
True
>>> filename.startswith('file:')
False
>>> url='http://www.python.org'
>>> url.startswith('htto:')
False
>>> url.startswith('http:')
True
>>>

若同时针对多个选项做检查,只需给函数startswith()str.endswith()提供包含多个可能选项的元组即可:

>>> import os
>>> os.getcwd()
'D:\\4autotests\\02script\\pythonbase'
>>> os.listdir()
['foo.py', 'hello.txt', 'Makefile', 'spam.c', 'spam.h', 'test1.py']
>>> filename=os.listdir()
>>> filename
['foo.py', 'hello.txt', 'Makefile', 'spam.c', 'spam.h', 'test1.py']
>>> [name for name in filename if name.endswith(('.c','.h'))]
['spam.c', 'spam.h']
>>> any(name.endswith('.py') for name in filename)
True

最后,当startswith()str.endswith()方法和其他操作(比如常见的数据整理操作)结合起来时效果也很好。例如,下面的语句检查目录中有无出现特定的文件:

>>> os.getcwd()
'D:\\4autotests\\02script\\pythonbase'
>>> os.listdir()
['foo.py', 'hello.txt', 'Makefile', 'spam.c', 'spam.h', 'test1.py']
>>> if any(name.endswith(('.txt','.py')) for name in os.listdir(os.getcwd())):
  print('文件存在')
文件存在
>>>

(代码摘自《Python Cookbook》)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python基础教程之自定义函数介绍
Aug 29 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
python的else子句使用指南
Feb 27 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
详解Python的三种可变参数
May 08 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
python设置环境变量的作用和实例
Jul 09 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
Python中join()函数多种操作代码实例
Jan 13 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
python pyg2plot的原理知识点总结
Feb 28 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
Apr 20 #Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 #Python
pandas获取groupby分组里最大值所在的行方法
Apr 20 #Python
pandas多级分组实现排序的方法
Apr 20 #Python
Python PyQt4实现QQ抽屉效果
Apr 20 #Python
Python在groupby分组后提取指定位置记录方法
Apr 20 #Python
PyQt实现界面翻转切换效果
Apr 20 #Python
You might like
PHP简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
php eval函数用法总结
2012/10/31 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
浅谈PHP的反射机制
2016/12/15 PHP
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
python万年历实现代码 含运行结果
2017/05/20 Python
python生成二维码的实例详解
2017/10/29 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
python实现坦克大战
2020/04/24 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
入党申请自荐书范文
2014/02/11 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
志愿者服务感言
2014/02/27 职场文书
教学评估实施方案
2014/03/16 职场文书
大学生个人学习总结
2015/02/15 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
python 中的@运算符使用
2021/05/26 Python
深入理解redis中multi与pipeline
2021/06/02 Redis
配置nginx 重定向到系统维护页面
2021/06/08 Servers
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL