我在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”)

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

最佳答案

您应该参考rstrippython documentation

rstrip列出要删除字符串末尾的字符列表。因此,file.rstrip(".algo")将在字符串的右端去除所有的'。','a','l','g'和'o'字符。

解决此问题的方法可能是使用'。'split您的字符串。作为分隔符:

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


或者根据注释中建议的色度,可以使用replace方法:

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

09-26 11:33