python中rstrip()为什么剔除过多?

r=re.findall("_[\d]*.mp4","161852_2_4.mp4")a=r[0].rstrip(".mp4")
>>> a
'_'
我是想“_4.mp4”进行rstrip('.mp4')后得到"_4",为什么结果是"_"而不是"_4"?
明白了,strip是取出后面所有的字符,直到遇到不是其中的一个字符为止
回答:
rstrip 不是移除 .mp4 字符串,而是移除后面的所有字符,.、m、p、4,所以 4 也移除了。
你可以使用 removesuffix。
>>> "_4.mp4".rstrip('.mp4')'_'
>>> "_4.mp4".removesuffix('.mp4')
'_4'
参考资料:
- https://docs.python.org/3/lib...
- https://docs.python.org/3/lib...
回答:
因为这样是把末尾所有 ., m, p, 4 这些字符去掉

可以这样写,不知道有没有更简单的方法
a[:-4] if a.endswith(".mp4") else a
以上是 python中rstrip()为什么剔除过多? 的全部内容, 来源链接: utcz.com/p/938388.html

