rstrip() 剔除过多的原因
在 python 中,rstrip() 方法用于从字符串的末尾移除指定字符。然而,与预期不同的是,它不仅仅会移除指定字符,还会移除其后续的所有字符。
原因分析
为了理解这一行为,我们需要了解 rstrip() 方法的内部机制。当使用 .mp4 作为要移除的字符时,rstrip() 实际上会执行以下操作:
- 从字符串的右侧开始扫描,直到遇到第一个不是 .mp4 的字符。
- 移除从这个字符开始到字符串末尾的所有字符。
在给定的例子中,字符串为 "_4.mp4":
立即学习“Python免费学习笔记(深入)”;
- rstrip() 从右侧扫描字符串,首先遇到的是 "4",这是一个有效的字符。
- 然后遇到 ".",这也不是要移除的字符。
- 接下来遇到 "m",这也不是要移除的字符。
- 接下来遇到的 "p" 才是要移除的字符。
- 因此,rstrip() 从 "p" 开始移除所有字符,包括 "4"。
- 最终,结果字符串变为 "_"。
解决方案
要仅移除 .mp4,而保留字符串的其余部分,可以使用 removesuffix() 方法:
a = "_4.mp4".removesuffix(".mp4")
# 输出:"_4"










