繁体   English   中英

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

[英]Strange behaviour of rstrip function in python with letter “l”

我在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文档

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM