加载中…
个人资料
雪水
雪水
  • 博客等级:
  • 博客积分:0
  • 博客访问:93,392
  • 关注人气:17
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Python的startswith和endswith

(2012-10-04 13:43:36)
标签:

杂谈

分类: Programming

做文本处理的时候经常要判断一个文本有没有以一个子串开始,或者结束。Python为此提供了两个函数:
S.startswith(prefix[, start[, end]]) -> bool
如果字符串S以prefix开始,返回True,否则返回False。start和end是两个可以缺省的参数。分别是开始比较的位置和结束比较的位置。这个函数也可以写成S[start:end].startswith(prefix)。
S.endswith(suffix[, start[, end]]) -> bool
如果字符串S以suffix结束,返回True,否者返回False。与startswith类似,这个函数也可以写成S[start:end].endswith(suffix)。start和end仍然是从左数起。
做个实例:
>>> “fish”.startswith(”fi”)
True
>>> “fish”.startswith(”fi”,1)
False
>>> “fish”.endswith(”sh”)
True
>>> “fish”.endswith(”sh”,3)
False

Python的这两个函数有个特别的地方——它的prefix和suffix参数不仅可以是字符串,还都可以是一个元组。只要其中一个成立,就返回True,也就是一种“或”的关系。比如:
if filename.endswith((’.gif’, ‘.jpg’, ‘.tiff’)):
print “%s是一个图片文件”%filename
上面两行代码根据文件扩展名是否是“gif”、“jpg”或“tiff”之一来决定文件是不是图片文件。这个代码也可以写成:
if filename.endswith(”.gif”) or filename.endswith(”.jpg”) or filename.endswith(”.tiff”):
print “%s是一个图片文件”%filename
不过这样比较麻烦。值得注意的是,不熟悉Python的朋友可能会忘了元组周围的括号。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有