[Tutor] lstrip removes '/' unexpectedly

Ricardo Aráoz ricaraoz at gmail.com
Tue Dec 4 14:22:24 CET 2007


Eric Brunson wrote:
> Ricardo Aráoz wrote:
>> Danny Yoo wrote:
>>   
>>>> Hello:
>>>> I'm seeing some strange behavior with lstrip operating
>>>> on string representations of *nix-style file paths
>>>> Example:
>>>>       
>>>>>>> s = '/home/test/'
>>>>>>> s1 = s.lstrip('/home')
>>>>>>> s1
>>>>>>>             
>>>> 'test/'   ## '/test/' was expected! '/' was unexpectedly removed
>>>> Any comments or corrective measures are welcome
>>>>       
>>> Hi Tim,
>>>
>>> Here's another example to help you see what's going on:
>>>
>>> ##########################
>>>     
>>>>>> s = '/home/test/'
>>>>>> s1 = s.lstrip('/ehmo')
>>>>>> s1
>>>>>>           
>>> 'test/'
>>> ##########################
>>>
>>> Take a closer look at the documentation of lstrip, and you should see that 
>>> what it takes in isn't treated as a prefix: rather, it'll be treated as a 
>>> set of characters.
>>>
>>>     
>> But then the real bug is why does it not strip the trailing '/' in
>> 'test/' or the 'e' that is in your set?
>>
>>   
> Because it's lstrip(), the "L" meaning "left".  Not strip() or rstrip().
> 

Silly me, should have checked before opening my big mouth. :-)



More information about the Tutor mailing list