How do I trim whitespace from a string? How do I trim whitespace from a string? python python

How do I trim whitespace from a string?

Just one space or all consecutive spaces? If the second, then strings already have a .strip() method:

>>> ' Hello '.strip()'Hello'>>> ' Hello'.strip()'Hello'>>> 'Bob has a cat'.strip()'Bob has a cat'>>> '   Hello   '.strip()  # ALL consecutive spaces at both ends removed'Hello'

If you only need to remove one space however, you could do it with:

def strip_one_space(s):    if s.endswith(" "): s = s[:-1]    if s.startswith(" "): s = s[1:]    return s>>> strip_one_space("   Hello ")'  Hello'

Also, note that str.strip() removes other whitespace characters as well (e.g. tabs and newlines). To remove only spaces, you can specify the character to remove as an argument to strip, i.e.:

>>> "  Hello\n".strip(" ")'Hello\n'

As pointed out in answers above


will remove all the leading and trailing whitespace characters such as \n, \r, \t, \f, space .

For more flexibility use the following

  • Removes only leading whitespace chars: my_string.lstrip()
  • Removes only trailing whitespace chars: my_string.rstrip()
  • Removes specific whitespace chars: my_string.strip('\n') or my_string.lstrip('\n\r') or my_string.rstrip('\n\t') and so on.

More details are available in the docs.

strip is not limited to whitespace characters either:

# remove all leading/trailing commas, periods and hyphenstitle = title.strip(',.-')