python中带有字母“l”的rstrip函数的奇怪行为

时间:2015-08-17 15:54:53

标签: python string python-2.7 strip

我在Python 2.7中有一个处理一些字符串的程序。如果某些字符串以字母“l”结尾(不是“L”,只是“l”),则rstrip会在不应该删除此“l”时删除。 示例代码:

file=u'isabel.algo'#final "l"
str="/"+file+"/"+file.rstrip(".algo")+".py"
print str
file=u'isabeL.algo'#final "L"
str="/"+file+"/"+file.rstrip(".algo")+".py"
print str
file='isabel.algo'#non unicode
str="/"+file+"/"+file.rstrip(".algo")+".py"
print str

结果是:

/isabel.algo/isabe.py
/isabeL.algo/isabeL.py
/isabel.algo/isabe.py

可以看出,当“文件”以“L”结尾时,它没有问题。但是当它以“l”结尾时,最后的字符串是错误的(它应该是“isabel.py”)

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:4)

您应该参考rstrip的{​​{3}}!

rstrip会获取您要删除字符串末尾的字符列表。因此file.rstrip(".algo")会删除所有'' a'' l''''和&#39 ;○'字符串右端的字符。

此问题的一个潜在解决方法是使用' split您的字符串。'作为分隔符:

str="/"+file+"/"+file.split(".")[0]+".py"

或者如评论中建议的chromano,您可以使用replace方法:

str="/"+file+"/"+file.replace(".algo",".py")