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

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

本文介绍如何在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。