How do I trim whitespace from a string?
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'
Read more... Read less...
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:
- Removes only trailing whitespace chars:
- Removes specific whitespace chars:
myString.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 hyphens title = title.strip(',.-')
This will remove all leading and trailing whitespace in
You want strip():
myphrases = [ " Hello ", " Hello", "Hello ", "Bob has a cat" ] for phrase in myphrases: print phrase.strip()
This can also be done with a regular expression
import re input = " Hello " output = re.sub(r'^\s+|\s+$', '', input) # output = 'Hello'