By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,621 Members | 1,104 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,621 IT Pros & Developers. It's quick & easy.

may be a bug in string.rstrip

P: n/a
Hi :

Please look at this code:
>>'exe.torrent'.rstrip('.torrent')
'ex' <----- it should be 'exe', why?

but this is a right answer:
>>'120.exe'.rstrip('.exe')
'120' <------ this is a right value.

there is a bug in the rstrip, lstrip there isn't this problem.

Kyo.

Nov 23 '07 #1
Share this Question
Share on Google+
2 Replies


P: n/a
"kyo guan" <ky*****@gmail.comwrote in
news:ma***************************************@pyt hon.org:
Hi :

Please look at this code:
>>>'exe.torrent'.rstrip('.torrent')
'ex' <----- it should be 'exe', why?
It really shouldn't be.
>
but this is a right answer:
>>>'120.exe'.rstrip('.exe')
'120' <------ this is a right value.

there is a bug in the rstrip, lstrip there isn't this
problem.
It's not a bug, but a misunderstanding of the way the function
works.

The argument you pass to strip, lstrip or rstrip is a character or
collection of characters to trim from the end of a string. You
would get the same results from: "120.exe".rstrip('.ex') or
"120.exe".rstrip('x.e') or
"120.exe".rstrip('ab.cdefghijklmnopqrstuvwxyz' )

In other words, by passing ".torrent" as an argument, you cause
the function to remove and of the characters in this set: [.toren]
from the end of the string. Not surprisingly, it did remove
".torrent", but also the trailing 'e' from 'exe'. Since 'x' is not
in that set of characters, the function stopped there.

--
rzed

Nov 23 '07 #2

P: n/a
Ant
On Nov 23, 4:09 am, "kyo guan" <kyog...@gmail.comwrote:
....
>'120.exe'.rstrip('.exe')
Another approach since you seem to be working with filenames is using
the os.path module:
>>import os.path as path
s = "test.torrent"
t = "test.exe"
u = "test"
path.splitext(s)[0]
'test'
>>path.splitext(t)[0]
'test'
>>path.splitext(u)[0]
'test'
Nov 23 '07 #3

This discussion thread is closed

Replies have been disabled for this discussion.