Skip to main content

How to print Tab in Python

In Python, effectively managing whitespace, i.e., tabs and spaces, is crucial for formatting output, creating readable data files, and manipulating strings.

This comprehensive guide will explore various techniques for working with tabs and spaces, equipping you with the knowledge to handle them confidently in your Python projects.

Printing Tabs in Python

Tabs are typically used to create aligned columns in text. In Python, the \t escape sequence represents a tab character.

1. Using the \t escape sequence

The simplest way to insert a tab is by using \t within a string literal.

string = 'tutorial\treference'
print(string) # Output: tutorial reference

2. Printing Literal Tab Characters

To represent the actual tab character itself (not its effect), use the repr() function.

print(repr('\t')) # Output: '\t'

3. Tabs in Formatted String Literals (f-strings)

f-strings offer a flexible way to embed tabs. Use a variable to hold the tab character because backslashes can't be used in the expression part of f-strings

tab = '\t'
string = f'tutorial{tab}reference'
print(string) # Output: tutorial reference

You can also directly use backslash inside the f-string as a string, without storing it into a variable:

first = 'tom'
last = 'nolan'
salary = 500

string = f"{first}\t{last}\t{salary}"
print(string) # Output: tom nolan 500

4. Tabs with str.format()

The str.format() method provides an alternative approach to formatting strings with tabs.

first = 'tom'
last = 'nolan'
string = '{}\t{}'.format(first, last)
print(string) # Output: tom nolan

Using Tabs with Operators and Functions

1. Concatenation with the + operator

You can use the + operator to concatenate strings including tabs:

first = 'tom'
last = 'nolan'
age = 500

print(first + '\t' + last + '\t' + str(age)) # Output: tom nolan 500

2. Using sep argument in print()

The print() function's sep argument allows you to specify a separator between printed items.

print('a', 'b', 'c', sep='\t') # Output: a    b    c

3. Joining lists of strings with tab separators using str.join()

The str.join() method is perfect for joining a list of strings with a tab separator.

a_list = ['tutorial', 'reference', 'com']
result = '\t'.join(a_list)
print(result) # Output: tutorial reference com

If your list contains non-string values, convert them to strings first:

a_list = ['tutorial', 1, 'reference', 2, 'com']
result = '\t'.join(str(item) for item in a_list)
print(result) # Output: tutorial 1 reference 2 com

String Manipulation with Tabs

1. Left-justifying strings with str.ljust()

Use str.ljust() to create left-aligned strings with a fixed width, useful when working with columns.

my_list = ['ab', 'abcd', 'abcdefg']
for item in my_list:
print(f'{item.ljust(10)}another')
# Output:
# ab another
# abcd another
# abcdefg another

2. Inserting tabs at specific indices using string slicing

String slicing helps insert a tab at a specific position within a string.

string = 'tutorialreference'
new_string = string[:8] + '\t' + string[8:]
print(new_string) # Output: tutorial reference

Working with Tab-Separated Files (TSV)

1. Writing TSV files

Writing tab-separated values to a file in Python:

with open('example.tsv', 'w', encoding='utf-8') as my_file:
my_file.write('tutorial\t reference\n')
my_file.write('first\tsecond\n')

with open('example.tsv', 'w', encoding='utf-8') as my_file:
my_list = ['tutorial', 'reference', 'com']
my_file.write('\t'.join(my_list) + '\n')

2. Reading TSV files

To read tab-separated values from a file: open the file in read mode ('r'), use readlines() to read all lines into a list, and then use the split('\t') method on each line to split it into a list of values based on the tab delimiter.

with open('example.tsv', 'r', encoding='utf-8') as f: 
lines = f.readlines()
for line in lines:
values = line.strip().split('\t') # Remove potential newline and split
print(values)
note

The strip() method is used here to remove the newline character (\n) at the end of each line before splitting it by tabs. This ensures you don't get an empty string or unwanted spaces in your resulting list of values.

Printing Spaces in Python

1. Using the space character and the * operator

The multiplication operator repeats a space character:

print(' ')      # Output: ' '
print(' ' * 5) # Output: ' '

2. Spaces in Formatted String Literals (f-strings)

space = ' '
print(f'tutorial{space * 5}reference') # Output: tutorial reference

3. Spaces with the + operator

Concatenate spaces with + operator.

print('tutorial' + ' ' * 5 + 'reference') # Output: tutorial     reference

4. Controlling spacing with commas in print()

Using commas to print multiple values in the print() function will, by default, put a space between them.

print('tutorial', 'reference', 'com') # Output: tutorial reference com

5. Using end argument in print()

Control what is printed at the end using end argument:

print('a', 'b', 'c', end='')  # Output: 'a b c'