How do I remove leading and trailing whitespace from a string in Python?
" Hello " --> "Hello" " Hello" --> "Hello" "Hello " --> "Hello" "Bob has a cat" --> "Bob has a cat"
Just one space, or all consecutive spaces? If the second, then strings already have a
>>> ' 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 need only 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
>>> " 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
myString.rstrip('\n\t')and so on.
More details are available in the docs