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完全新手教程
Feb 08 Python
简单讲解Python中的闭包
Aug 11 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
python 实现二维字典的键值合并等函数
Dec 06 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
python的reverse函数翻转结果为None的问题
May 11 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
基于Python 函数和方法的区别说明
Mar 24 Python
利用Python多线程实现图片下载器
Mar 25 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使用PDO方法详解
2014/12/27 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
PHP实现简单日历类编写
2020/08/28 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
Python Series从0开始索引的方法
2018/11/06 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
大学毕业生的自我鉴定
2013/11/30 职场文书
信访稳定工作汇报
2014/10/27 职场文书
努力学习保证书
2015/02/26 职场文书
员工家属慰问信
2015/03/24 职场文书
党支部审查意见
2015/06/02 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
Python之matplotlib绘制饼图
2022/04/13 Python
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS