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 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
批处理与python代码混合编程的方法
May 19 Python
在Django同1个页面中的多表单处理详解
Jan 25 Python
python方向键控制上下左右代码
Jan 20 Python
python实现傅里叶级数展开的实现
Jul 21 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
python super的使用方法及实例详解
Sep 25 Python
PyTorch 导数应用的使用教程
Aug 31 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
文件上传类
2006/10/09 PHP
PHP如何编写易读的代码
2007/07/10 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
python获取栅格点和面值的实现
2020/03/10 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
架构师岗位职责
2013/11/18 职场文书
优秀教师获奖感言
2014/01/31 职场文书
会计专业自我鉴定
2014/02/10 职场文书
标准单位租车协议书
2014/09/23 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
公司停电通知
2015/04/15 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL