Search code examples
pythonstringuppercase

Python title() with apostrophes


Is there a way to use .title() to get the correct output from a title with apostrophes? For example:

"john's school".title() --> "John'S School"

How would I get the correct title here, "John's School" ?


Solution

  • If your titles do not contain several whitespace characters in a row (which would be collapsed), you can use string.capwords() instead:

    >>> import string
    >>> string.capwords("john's school")
    "John's School"
    

    EDIT: As Chris Morgan rightfully says below, you can alleviate the whitespace collapsing issue by specifying " " in the sep argument:

    >>> string.capwords("john's    school", " ")
    "John's    School"