类型:Python,创建时间:Dec. 31, 2011, 1:16 a.m.
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/12/。
做文本处理的时候经常要判断一个文本有没有以一个子串开始,或者结束。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的朋友可能会忘了元组周围的括号。
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/12/。
暂时还没有任何评论。