python字符串带奇怪的行为

python字符串带奇怪的行为,python,string,python-2.7,strip,Python,String,Python 2.7,Strip,我有这种脱衣舞行为的原因吗?这是一只虫子还是我丢失的一些弦乐魔术 # THIS IS CORRECT >>> 'name.py'.rstrip('.py') 'name' # THIS IS WRONG >>> 'namey.py'.rstrip('.py') 'name' # TO FIX THE ABOVE I DID THE FOLLOWING >>> 'namey.py'.rstrip('py').rstrip('.'

我有这种脱衣舞行为的原因吗?这是一只虫子还是我丢失的一些弦乐魔术

# THIS IS CORRECT
>>> 'name.py'.rstrip('.py')
'name'


# THIS IS WRONG     
>>> 'namey.py'.rstrip('.py')
'name'

# TO FIX THE ABOVE I DID THE FOLLOWING
>>> 'namey.py'.rstrip('py').rstrip('.')
'namey'

这是因为str.rstrip()命令删除每个尾随字符,而不是整个字符串

string.rstrip(s[,chars]) 返回已删除尾随字符的字符串副本。如果省略字符或无字符,则删除空白字符。如果给定而不是无,则字符必须是字符串字符串中的字符将从调用此方法的字符串末尾剥离

您可以尝试
str().endswith

>>> name = 'namey.py'
... if name.endswith('.py'):
...     name = name[:-3]

>>> name
'namey'
或者干脆
str().split()

另见:
>>> name = 'namey.py'
... if name.endswith('.py'):
...     name = name[:-3]

>>> name
'namey'
>>> 'namey.py'.split('.py')[0]
'namey'