On Thu, 4 Dec 2008 at 20:54, Terry Reedy wrote:
 'toc.html'
> > >  test[4].strip('.html')
 'oc'

 Can't figure out what is going on, really.

What I can't figure out is why, when people cannot figure out what is going on with a function (or methods in this case), they do not look it up the doc. (If you are an exception and did, what confused you?) Can you enlighten me?

I'm a little embarrassed to admit this, since I've been using python for
many years, but until I read these posts I did not understand how strip
used its string argument, and I _have_ read the docs.  I can't tell you
what confused the OP, but I can tell you what confused me.

I have often wished that in 'split' I could specify a _set_ of characters
on which the string would be split, in the same way the default list
of whitespace characters causes a split where any one (or more) of
them appears.  But instead the string argument is a multi-character
separator.  (Which is sometimes useful and I wouldn't want to lose the
ability to specify a multi-character separator!)

My first experience in using the string argument was with split, so when I
ended up using it with strip, by analogy I assumed that the string passed
to strip would also be a multi-character string, and thus stripped only
if the whole string appeared exactly.  Reading the documentation did
not trigger me reconsider that assumption.  I guess I'm just lucky that
I haven't run into any bugs (but I think I've used the string argument
to strip only once or twice in my career).

It would be lovely if both the split and strip methods would have a
second string argument that would use the string in the opposite sense
(as a set for split, as a sequence match for strip).

In the meantime the docs could be clarified by replacing:

    the characters in the string will be stripped

with

    all occurrences of any of the characters in the string will be
    stripped

--RDM

PS: the OP might want to look at th os.path.splitext function.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to