Remove all Whitespaces from a String in Python

By James L.

In this guide, we will learn how to eliminate all whitespaces within a string in Python. We will also cover how to remove whitespaces only from the start and end of a string, providing you with a thorough understanding of whitespace manipulation in Python.

Let’s dive in and make handling whitespace in Python a breeze! We will discuss the following methods:

  1. Using replace() method
  2. Using split() and join() methods
  3. Using strip() method
  4. Using for() loop
  5. Using regular expression
  6. Using replace() method

# Using replace() method

You can use the replace() method to remove all space characters in a string.

Here’s an example:

my_str = "  Python is    awesome  "

# Use replace() method to remove spaces
new_str = my_str.replace(' ', '')

print(new_str)  # Output: 'Pythonisawesome'

In this example, we use the replace() method to replace all occurrences of spaces with empty strings, effectively creating a new string without spaces.

Note: Python strings are immutable, which means that their values cannot be changed once they are created. Any operation that modifies a string actually creates a new string with the updated value.

You can use the replace() method to remove other whitespace characters like newlines and tabs. To include the removal of these characters in the above code example, you have to chain multiple replace() methods together.

Here’s an updated example:

my_str = "  Python is    \n\tawesome  "

# Use replace() method to remove spaces, newlines and tabs
new_str = my_str.replace(' ', '').replace('\n', '').replace('\t', '')

print(new_str)  # Output: 'Pythonisawesome'

There is a more concise and efficient method specifically designed for this task which we will discuss later in the guide.

# Using split() and join() methods

You can use split() and join() methods to remove all the whitespaces from a string in Python.

In this approach, you use the split() method to break the string into a list of words and then use the join() method to concatenate the words without spaces.

Here’s an example:

my_str = "  Python is    \n\tawesome  "

# Using split() to break the string into a list of words
words_list = my_str.split()

# Using join() to concatenate the words without spaces
new_str = ''.join(words_list)

print(new_str)  # Output: 'Pythonisawesome'

In this example, the split() method without any argument splits the string at whitespace characters (including spaces, tabs, and newlines), creating a list of words. The join() method then concatenates these words without any spaces.

If you want to remove only the unwanted spaces between words in a string, you can check out my guide on how to replace multiple spaces with a single space in Python.

# Using strip() method

You can use the strip() method to remove the leading and trailing whitespaces from a string. However, it doesn’t remove whitespaces in the middle of the string.

Here’s an example:

my_str = "  \nPython is \n awesome\n\n  "

# Using strip() to remove leading and trialing whitespaces
new_str = my_str.strip()

# repr() is used to display newline characters visibly
print(repr(new_str))  # Output: 'Python is \n awesome'

In this example, the strip() method without any argument removes all leading and trailing whitespaces (such as spaces, tabs, and newlines) from a string.

If you only want to remove leading and trailing space characters, you can pass space character (' ') as an argument in the strip() method as follows:

my_str = "  \nPython is awesome\n\n  "

# Using strip() to remove leading and trialing space characters
new_str = my_str.strip(' ')

# repr() is used to display newline characters visibly
print(repr(new_str))  # Output: '\nPython is awesome\n\n'

In this example, the strip() method only removes the leading and trailing space characters. However, it doesn’t affect other leading and trailing whitespace characters such as newline (\n). As a result leading and trailing spaces are successfully removed but other whitespace characters remain unaffected.

Removing all leading whitespace characters using lstrip() method

If you want to only remove the leading whitespace characters, you can use the lstrip() method.

Here’s an example:

my_str = "  \nPython is awesome\n\n  "

# Using lstrip() to remove all leading whitespaces
new_str = my_str.lstrip()

# repr() is used to display newline characters visibly
print(repr(new_str))  # Output: 'Python is awesome\n\n  '

Removing all trailing whitespace characters using rstrip() method

If you want to only remove the trailing whitespace characters, you can use the rstrip() method.

Here’s an example:

my_str = "  \nPython is awesome\n\n  "

# Using rstrip() to remove all trailing whitespaces
new_str = my_str.rstrip()

# repr() is used to display newline characters visibly
print(repr(new_str))  # Output: ' \nPython is awesome'

# Using for loop

You can use the for loop to remove all spaces from a string.

Here’s an example:

my_str = " Python is   awesome "

# Initialize an empty string to store characters without spaces
new_str = ""

# Iterate through each character in the original string
for char in my_str:
    # Check if the character is not a space
    if char != " ":
        # If not space, add the character to the new string
        new_str += char
print(new_str)  # Output: 'Pythonisawesome'

In this example, the for loop iterates through each character in the original string and appends it to a new string only if it is not a space character. The resulting string new_str will be the new string without any space characters.

# Using regular expressions

You can use regular expressions to remove all spaces from a string in Python.

Here’s an example:

import re

my_str = "  \nPython is awesome\n\n  "

# Define a regular expression pattern for matching whitespaces
pattern = re.compile(r'\s')

# Using re.sub() function to replace all whitespaces with empty strings
new_str = re.sub(pattern, '', my_str)

print(new_str)  # Output: 'Pythonisawesome'

In this example, the re.compile() function is used to compile a regular expression pattern \s into a regular expression object. The re.sub() function is then used to replace any whitespace character (\s) with an empty string (''). The result is a new string with all whitespaces removed.

The regex pattern \s matches any whitespace character (space, tabs, or newline).

Remove only leading whitespaces using regular expressions

You can also remove only leading whitespaces in a string using regular expressions.

Here’s an example:

import re

my_str = "  \nPython is awesome\n\n  "

# Using re.sub() function to replace leading whitespaces with empty strings
new_str = re.sub(r'^\s+', '', my_str)

# repr() is used to display newline characters visibly
print(repr(new_str))  # Output: 'Python is awesome\n\n'

In this example, the regular expression pattern ^\s+ is used to match one or more whitespaces at the beginning of the string. Here is the breakdown of the regular expression:

^: Asserts the start of the string. It indicates that the following pattern should only match at the beginning of the string.
\s: Matches any whitespace character (space, tab, or newline)
+: This is a quantifier that matches one or more occurrences of the preceding character or group, which in this case is \s.

Putting it all together ^\s+ means “match one or more whitespace characters at the beginning of the string”.

So, when we use this regex with the re.sub() function, it will find and replace one or more leading whitespaces with an empty string, effectively removing them.

Remove only trailing whitespaces using regular expressions

You can also use a regular expression to remove only trailing whitespaces.

Here’s an example:

import re

my_str = "  \nPython is awesome\n\n  "

# Using re.sub() function to replace trailing whitespaces with empty strings
new_str = re.sub(r'\s+$', '', my_str)

# repr() is used to display newline characters visibly
print(repr(new_str))  # Output: ' \nPython is awesome'

In this example, the regular expression pattern \s+$ matches one or more whitespaces at the end of the string. The re.sub() function then replaces the matched whitespaces with an empty string, effectively removing them.

Here’s a breakdown of the regular expression:

\s: Matches any whitespace character (space, tab, or newline)
+: This is a quantifier that matches one or more occurrences of the preceding character or group, which in this case is \s.
$: Asserts the position at the end of the string.

Putting it all together \s+$ means “match one or more whitespace characters at the end of the string”.

So, when we use this regex with the re.sub() function, it will find and replace one or more trailing whitespaces with an empty string, effectively removing them.

Conclusion

In conclusion, this guide has provided an in-depth exploration of various methods to remove whitespaces from a string in Python.

Use the replace() method to quickly remove all space characters from a string.

Use the split() and join() methods to remove all whitespaces from a string.

Use the strip() method if you want to remove whitespaces from the beginning and end of the string.

Use the lstrip() method if you want to only remove whitespaces from the beginning of the string.

Similarly, use the rstrip() method if you want to only remove whitespaces from the end of the string.

Use the for loop if you want to manually remove space characters from a string. It may be less efficient for large strings.

Use the regular expression if you want to handle complex whitespace scenarios.

By understanding these methods and their nuances, you will be equipped to confidently handle whitespaces in your Python strings and achieve the desired text formatting in various situations.

Happy coding → 3000