Python字符串开头或结尾匹配:startswith与endswith用法详解

星野
星野
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍如何在Python中利用startswith和endswith方法在字符串开头或结尾进行文本模式匹配。通过示例演示如何检查文件扩展名和URL协议,并展示如何结合元组进行多选项检查及数据整理操作,帮助开发者高效处理字符串验证任务。

本文通过具体实例,讲解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函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》以及《Python文件与目录操作技巧汇总》。

期望本文提供的说明能对各位的Python编程实践有所助益。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表