У меня есть программа в Python 2.7, которая обрабатывает некоторые строки. Если некоторые строки заканчиваются буквой «l» (а не «L», просто «l»), rstrip удаляет этот «l», когда это не должно. Пример кода:Странное поведение функции rstrip в python с буквой «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»)
Любая помощь будет оценена по достоинству. Заранее спасибо.
Использование .Привернуть затем рекомендуется. – Carlos
Обратите внимание, что 'haystack.replace ('needle', 'foo')' заменит иглу в любой точке стога сена, причем не только в конце. С регулярным выражением вы можете выразить это условие. –
@chromano Я добавил ваше предложение к ответу. –