News123 wrote:
I wondered about a potentially nicer way of removing a prefix of a
string if it exists.


Here what I tried so far:


def rm1(prefix,txt):
    if txt.startswith(prefix):
        return txt[len(prefix):]
    return txt


for f in [ 'file:///home/me/data.txt' , '/home/me/data.txt' ]:
    # method 1 inline
    prefix = "file://"
    if f.startswith(prefix):
            rslt = f[len(prefix):]
    else
        rsl = f
    # method 2 as function
    rslt = rm1('file://',f)


Is there any nicer function than above rm1()?

No.

Is there any nicer inline statement rhan my method 1' ?

You could write:

    rsl = f[len(prefix):] if f.startswith(prefix) else f

in recent versions of Python, but the function is neater.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to