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的Template使用指南
Sep 11 Python
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
Python实现图像几何变换
Jul 06 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
基于django channel实现websocket的聊天室的方法示例
Apr 11 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
djano一对一、多对多、分页实例代码
Aug 16 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
tensorflow常用函数API介绍
Apr 19 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 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实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
DataFrame中去除指定列为空的行方法
2018/04/08 Python
python实现最大优先队列
2019/08/29 Python
QML用PathView实现轮播图
2020/06/03 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
2014年3.15团委活动总结
2014/03/16 职场文书
清明扫墓感想
2015/08/11 职场文书
初中团支书竞选稿
2015/11/21 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python