Expandtabs method in Python string

In this Python tutorial, I will show you what is the expandtabs method in Python string. We will see what is its syntax, parameter, and return values. We will also see some examples to make the concept more accessible.

When working with text data in Python, it’s common to encounter various formatting challenges. One such challenge is dealing with tab characters. In many places, tabs are frequently used in documents to align text or create indents.

For instance, think about the federal tax forms or a screenplay where the text must align just right. But when we’re processing such text in Python, how can we ensure the spaces represented by tabs are consistently represented?

Enter the expandtabs() method in string Python.

What is expandtabs method in Python string

In Python, the expandtabs() method is a built-in function used to set the tab size of the string, i.e., to replace the tab character (\t) with the appropriate number of spaces.


The syntax of the Python string expandtabs() method is as follows:


Here, str is the Python string on which the operation is going to be held.


  • tabsize(optional): The expandtabs() takes an integer argument that defines the number of spaces we want to replace with a tab character. If not provided, the default value is 8.

Return values:

The expandtabs() string method in Python returns a string where all ‘\t’ characters are replaced with whitespace characters until the next multiple of the tabsize parameter.

Expandtabs() methods in Python string examples

Let’s see different examples with an explanation and try to understand what exactly the expandtabs() function does to the Python string.

Example-1: The expandtabs() Function in Python String

The expandtabs() method in Python’s string module is used to replace the tab character ('\t') with whitespace until the next tab stop. These tab stops are determined by the tabsize parameter provided by the expandtabs() method.

If not specified, the default value of tabsize is 8, making the next tab stops at positions 8, 16, 24, 32, and so on.

For example, Suppose we have a string in Python containing the names of a famous scientist, written in the form of first name, middle name, and last name, separated by the tab (‘\t‘) character To ensure the data has consistent spacing between each name, we can use the expandtabs() method:

Name = 'Thomas\tAlva\tEdison'


Here’s a step-by-step breakdown of the output:

  • The position of the first ‘\t’ character after “Thomas” is at position 6. Given that we have set the tabsize to 10, the expandtabs() method will replace the tab character with spaces until position 10. Hence, there will be 4 spaces after “Thomas”.
  • For the second ‘\t’ character after “Alva”, its position is now 14 (after adding the spaces post “Thomas”). The next tab stop is at position 20 (multiples of tabsize which is set to 10). Thus, the expandtabs() method will add 6 spaces after “Alva” to reach this next tab stop.

So, the final output will look like: With 4 spaces between “Thomas” and “Alva”, and 6 spaces between “Alva” and “Edison”.

Thomas    Alva      Edison
Python expandtabs() string method for different argument

This way we can use the string expandtabs method for consistent and clean data presentation.

Example-2: The Python expandtabs() method with default value

By default, the expandtabs() method (or Python’s handling of tab characters) uses 8 spaces to represent a tab.

For instance, Imagine we are writing a Python script to display a small section of a baseball scoreboard that shows team names and their scores. Given the variation in team name lengths, using tabs can ensure consistent spacing.

Here is the code,

scoreboard = "Yankees\t3\nRed Sox\t2\nCubs\t5"


In the example above:

  • “Yankees” takes up 7 characters. Adding the tab gives it 8 spaces, lining up with the scores.
  • “Red Sox” takes up 7 characters as well. Just like “Yankees”, the tab after “Red Sox” takes it to 8 spaces, ensuring the score aligns.
  • “Cubs” only takes up 4 characters, so the tab after “Cubs” will add another 4 spaces to make it a total of 8 spaces, again aligning the score properly.

The output is:

Yankees 3
Red Sox 2
Cubs    5
expandtabs method in Python string with default value

By using the default tab size in expandtabs(), the scores are neatly aligned in a column, making the information clear and easy to read in Python.

Benefits of Using expandtabs() in Python

  • Consistency: By replacing tabs with a uniform number of spaces, the Python expandtabs() method ensures consistent alignment across various platforms and text editors.
  • Readability: The method aids in enhancing the legibility of data, especially when working with tabular information.
  • Customization: With the option to set the tab size, users have flexibility in formatting the text to suit their specific needs.


The expandtabs() method in Python string offers an effective way to handle and format strings containing tab characters. we’ve illustrated examples of how this Python expandtabs method can be beneficial in various applications.

You may also like to read: