我在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”)
任何帮助将不胜感激。提前谢谢。
答案 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")