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

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

r=re.findall("_[\d]*.mp4","161852_2_4.mp4")

a=r[0].rstrip(".mp4")

>>> a

'_'

我是想“_4.mp4”进行rstrip('.mp4')后得到"_4",为什么结果是"_"而不是"_4"?


明白了,strip是取出后面所有的字符,直到遇到不是其中的一个字符为止
python中rstrip()为什么剔除过多?


回答:

rstrip 不是移除 .mp4 字符串,而是移除后面的所有字符,.mp4,所以 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 这些字符去掉

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

可以这样写,不知道有没有更简单的方法

a[:-4] if a.endswith(".mp4") else a

以上是 python中rstrip()为什么剔除过多? 的全部内容, 来源链接: utcz.com/p/938388.html

回到顶部