I got bitten by an .rstrip() gotcha that I knew about (but that I also had
apparently forgotten).
What I wanted to do was to quickly strip the extension from a certain set of
files that were named gt.leg, glg.leg and so on. Legend files for
rendering geotiff files, if you need to know. I could use the os.path
extension stuff, or I could do it the simple way:
>>> 'gt.leg'[:-4]
'gt'
>>> 'glg.leg'[:-4]
'glg'
But I figured using rstrip (strip characters from the right side) would be clearer:
>>> 'gt.leg'.rstrip('.leg')
'gt'
>>> 'glg.leg'.rstrip('.leg')
''
Say again? '' instead of 'glg'?
My error: what you pass to rstrip isn’t a fixed string that it removes from
the right hand side, but a couple of characters that all are allowed to be
removed. and my 'glg.leg' consists completely of all those characters
in '.leg'! So all of them got removed.
It was only after I tried it with a couple of other files that the problem dawned on me. I guess I’ll remember it now for the next two years at least :-)
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):