码迷,mamicode.com
首页 > 编程语言 > 详细

【python cookbook】【字符串与文本】2.在字符串的开头或结尾处做文本匹配

时间:2016-08-13 11:24:53      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

问题:在字符串的开头或结尾处按照指定的文本模式做检查,例如检查文件的扩展名、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】【字符串与文本】2.在字符串的开头或结尾处做文本匹配

标签:

原文地址:http://www.cnblogs.com/apple2016/p/5767494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!