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实现问号表达式(?)的方法
Nov 27 Python
pymongo给mongodb创建索引的简单实现方法
May 06 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
用Python实现KNN分类算法
Dec 22 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
python3转换code128条形码的方法
Apr 17 Python
pyqt5 获取显示器的分辨率的方法
Jun 18 Python
python隐藏终端执行cmd命令的方法
Jun 24 Python
python scatter函数用法实例详解
Feb 11 Python
Python3实现建造者模式的示例代码
Jun 28 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
python 基于opencv实现图像增强
Dec 23 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静态调用非静态方法的应用分析
2013/05/02 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
JS 中LocalStorage和SessionStorage的使用
2017/08/17 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
canvas轨迹回放功能实现
2017/12/20 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
django表单的Widgets使用详解
2019/07/22 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
Eclipse面试题
2014/03/22 面试题
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
物理教育专业毕业生推荐信
2013/11/03 职场文书
清明节随笔
2015/08/15 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
优质护理心得体会
2016/01/22 职场文书
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js