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

Dan Bishop danb_83 at yahoo.com
Thu May 8 22:40:33 EDT 2008


> On Thu, May 8, 2008 at 9:12 PM, John Schroeder <jschr... 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.

On May 8, 9:04 pm, "Eric Wertman" <ewert... 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()

Yes, there are other ways to do it.  If, for example, you like one-
liners but not regexps:

def add_spaces(text):
    return text[:1] + ''.join((' ' + char if char.isupper() else char)
for char in text[1:])



More information about the Python-list mailing list