How can I add spaces where ever I have capital letters?

John Schroeder jschroed at gmail.com
Thu May 8 22:34:59 EDT 2008


Thanks guys.  That upper() function reminded me to use the isupper()
function.  I got this going in a single pass:

def a(name):
    self_name = name
    # Increment this value every time we add a space
    offset = 0
    for i in xrange(len(name)):
        if i != 0 and name[i].isupper():
            self_name = self_name[:i + offset] + ' ' + self_name[i +
offset:]
            offset += 1

    return self_name

name = "GeneralPacketMeToo"
print a(name)


>>>
General Packet Me Too
>>>

On Thu, May 8, 2008 at 7:04 PM, Eric Wertman <ewertman at gmail.com> wrote:

> Something like this.  I'm sure there are other ways to do it.
>
> import re
>
> def addspace(m) :
>        return ' ' + m.group(0)
>
> strng = "ModeCommand"
>
> newstr =  re.sub('[A-Z]',addspace,strng)
>
> print newstr.strip()
>
>
>
> On Thu, May 8, 2008 at 9:12 PM, John Schroeder <jschroed at gmail.com> wrote:
> > I have a string (which I got from the names of my classes) and I would
> like
> > to print out my CamelCase classes as titles.
> >
> > I would like it to do this:
> >
> >>>> my_class_name = "ModeCommand"
> > ## Do some magic here
> >>>> my_class_name
> > 'Mode Command'
> >
> > Anyone know any easy way to do this?  Thanks.
> >
> > --
> > http://mail.python.org/mailman/listinfo/python-list
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080508/100bceea/attachment-0001.html>


More information about the Python-list mailing list