Scott SA  <[EMAIL PROTECTED]> wrote:
>    >>> string.replace('120.exe','.exe','')
>    '120'

Don't use string.replace(), use the replace method of strings:
>>> '120.exe'.replace('.exe', '')
'120'

>... but it has a side-effect of mid-string replacements:
>
>    >>> string.replace('123.exe.more','.exe','')
>    '123.more'

>>> s = '120.exe.more'
>>> (s+'\0').replace('.exe' + '\0', '').rstrip('\0')
'120.exe.more'

Yeah, it's a little fragile if you have embedded NULLs. In
which case, you can always test with endswith():

def strip_suffix(s, suffix):
    if s.endswith(suffix):
        return s[:-len(suffix)]
    return s

You can even make it case-insensitive:

def istrip_suffix(s, suffix):
    if s.lower().endswith(suffix.lower()):
        return s[:-len(suffix)]
    return s

Point being, don't reach for regular expression solutions too
quickly. They will almost certainly be (a) slower and (b) harder
for other people to read.

-- 
\S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/
   "Frankly I have no feelings towards penguins one way or the other"
        -- Arthur C. Clarke
   her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to