python如何判断字符串以什么结尾

13次阅读

python中判断字符串结尾最常用方法是endswith(),返回布尔值,支持单后缀、元组多后缀及指定范围;需注意大小写敏感和尾部空格问题。

python如何判断字符串以什么结尾

Python 中判断字符串以什么结尾,最常用、最直接的方法是使用字符串的 endswith() 方法。

用 endswith() 判断是否以指定后缀结尾

该方法返回布尔值(TrueFalse),支持单个字符串或元组形式的多个后缀:

  • 判断是否以某个字符串结尾:"hello.txt".endswith(".txt") → True
  • 一次检查多个可能后缀(传入元组):"data.csv".endswith((".csv", ".xlsx", ".json")) → True
  • 支持指定起始和结束位置(可选参数):"abc123def".endswith("def", 3, 9) → True(只检查索引 3 到 9 范围内的子串)

提取实际的结尾部分(不是判断,而是获取)

如果想知道“它到底以什么结尾”,而不是只判断真假,需结合长度计算或切片

  • 已知可能的后缀列表,可遍历匹配:
    suffixes = [".py", ".js", ".html"]
    for s in suffixes:
    if filename.endswith(s):
    print(f"以 {s} 结尾")
    break
  • 取最后 N 个字符(需提前知道长度):text[-3:] 获取最后 3 个字符,但要注意字符串长度不足时会报错或截断,建议先判断 len(text) >= 3

注意大小写与空格等细节

endswith() 区分大小写,且不会自动去除首尾空格:

立即学习Python免费学习笔记(深入)”;

  • "Report.pdf".endswith(".pdf") → False(大小写不匹配)
  • "file.txt ".endswith(".txt") → False(末尾有空格)
  • 需要忽略大小写?先转小写:s.lower().endswith(".pdf")
  • 需要忽略尾部空格?先用 s.rstrip() 处理:s.rstrip().endswith(".txt")

其他方式(不推荐日常使用)

虽然可以用正则表达式re.search(r".txt$", s))或手动切片(s[-4:] == ".txt"),但它们更易出错、可读性差、也不支持多后缀批量检查。除非有特殊需求,否则坚持用 endswith() 即可。

text=ZqhQzanResources