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

Python 中判断字符串以什么结尾,最常用、最直接的方法是使用字符串的 endswith() 方法。
用 endswith() 判断是否以指定后缀结尾
该方法返回布尔值(True 或 False),支持单个字符串或元组形式的多个后缀:
-
判断是否以某个字符串结尾:
"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() 即可。











