By default, Python’s .strip()
method removes whitespace characters from both ends of a string. To remove different characters, you can pass a string as an argument that specifies a set of characters to remove. The .strip()
method is useful for tasks like cleaning user input, standardizing filenames, and preparing data for storage.
By the end of this tutorial, you’ll understand that:
- The
.strip()
method removes leading and trailing whitespace but doesn’t remove whitespace from the middle of a string. - You can use
.strip()
to remove specified characters from both ends of the string by providing these characters as an argument. - With the related methods
.lstrip()
and.rstrip()
, you can remove characters from one side of the string only. - All three methods,
.strip()
,.lstrip()
, and.rstrip()
, remove character sets, not sequences. - You can use
.removeprefix()
and.removesuffix()
to strip character sequences from the start or end of a string.
In this tutorial, you’ll explore the nuances of .strip()
and other Python string methods that allow you to strip parts of a string. You’ll also learn about common pitfalls and read about practical real-world scenarios, such as cleaning datasets and standardizing user input.
To get the most out of this tutorial, you should have a basic understanding of Python strings and character data.
Get Your Code: Click here to download the free sample code that shows you how to strip characters from a Python string.
Take the Quiz: Test your knowledge with our interactive “How to Strip Characters From a Python String” quiz. You’ll receive a score upon completion to help you track your learning progress:
Interactive Quiz
How to Strip Characters From a Python StringIn this quiz, you'll test your understanding of Python's .strip(), .lstrip(), and .rstrip() methods, as well as .removeprefix() and .removesuffix(). These methods are useful for tasks like cleaning user input, standardizing filenames, and preparing data for storage.
How to Use Python’s .strip()
Method to Remove Whitespace From Strings
Python’s .strip()
method provides a quick and reliable way to remove unwanted spaces, tabs, and newline characters from both the beginning and end of a string. This makes it useful for tasks like:
- Validating user input, such as trimming spaces from email addresses, usernames, and other user-provided data.
- Cleaning messy text gathered through web scraping or other sources.
- Preparing data for storage to ensure uniformity before saving text to a database.
- Standardizing logs by removing unwanted spaces.
If you don’t provide any arguments to the method, then .strip()
removes all leading and trailing whitespace characters, leaving any whitespace within the string untouched:
>>> original_string = " Hello, World! "
>>> original_string.strip()
'Hello, World!'
When you call .strip()
on a string object, Python removes the leading and trailing spaces while keeping the spaces between words unchanged, like in "Hello,"
and "World!"
. This can be a great way to clean up text data without affecting the content itself.
However, whitespace isn’t just about spaces—it also includes common characters such as newlines (\n
) and tabs (\t
). These often appear when you’re dealing with multi-line strings or reading data from files. The default invocation of .strip()
effectively removes them as well:
>>> text = """\n\t This is a messy multi-line string.
...
... \t """
>>> text.strip()
'This is a messy multi-line string.'
Here, .strip()
removes all leading and trailing whitespace characters, including newlines and tabs, leaving only the text content. After having cleaned your strings using .strip()
, they’re in better condition for displaying or further processing the text. This can be especially useful when you’re dealing with structured data, such as logs or CSV files, where you need to process many strings in a row.
At this point, you’ve learned how .strip()
handles whitespace removal. But what if you need to strip specific characters, not just whitespace? In the next section, you’ll see how you can use this method to remove any unwanted characters from the start and end of a string.
Remove Specific Characters With .strip()
Sometimes, you need to remove specific characters other than whitespace. For example, when your text is delimited by unwanted symbols, or when you have to handle text that’s plagued by formatting issues. You can use .strip()
to remove specific characters by passing these characters as an argument to the method:
cleaned_string = original_string.strip(chars=None)
Here, chars
is a string argument that you can pass to .strip()
. If you don’t pass it, then it defaults to None
, which means the method will remove whitespace characters.
Instead, you can pass a string value that contains all the characters needing removal from both ends of the target string. Note that .strip()
doesn’t treat the argument as a prefix or suffix, but rather as a set of individual characters to strip. In the rest of this section, you’ll explore use cases of passing specific characters to .strip()
for cleaning the beginning and end of a string.
The .strip()
method is useful when you want to remove punctuation marks, specific symbols, or other unwanted characters. For example, in sentiment analysis tasks, you may need to remove question marks or exclamation marks from text data:
>>> review = "!!This product is incredible!!!"
>>> review.strip("!")
'This product is incredible'
Since you pass "!"
as an argument, .strip()
removes all exclamation marks from both ends of the string while leaving the text content intact. Keep in mind that .strip()
removes all occurrences of the specified characters at once, not just the first one it encounters.
You can also use .strip()
to remove multiple specified characters from both ends of a string. For example, some of the product reviews you’re dealing with may be in Spanish and use a combination of exclamation marks and inverted exclamation marks: