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中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
python获取地震信息 微信实时推送
Jun 18 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
在Python 的线程中运行协程的方法
Feb 24 Python
python求前n个阶乘的和实例
Apr 02 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
python批量修改交换机密码的示例
Sep 22 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 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
实用函数10
2007/11/08 PHP
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
php继承的一个应用
2011/09/06 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
javascript每日必学之多态
2016/02/23 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
银行职员思想汇报
2013/12/31 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
检讨书格式范文
2015/05/07 职场文书
2015入党自传书范文
2015/06/26 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
python中24小时制转换为12小时制的方法
2021/06/18 Python
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript