为什么str.lstrip会删除额外的字符?
path = “/Volumes/Users”
>>> path.lstrip(‘/Volume’)
‘s/Users’
>>> path.lstrip(‘/Volumes’)
‘Users’
>>>
我期望的输出path.lstrip('/Volumes')
是'/Users'
-
lstrip
是基于字符的,它将删除该字符串中左端的所有字符。要验证这一点,请尝试以下操作:
"/Volumes/Users".lstrip("semuloV/") # also returns "Users"
由于
/
是字符串的一部分,因此将其删除。您需要改用切片:
if s.startswith("/Volumes"): s = s[8:]
或者,在Python
3.9+上,您可以使用removeprefix
:s = s.removeprefix("/Volumes")