Simple Ways to Read TSV Files in Python

Last Updated : 23 Jul, 2025

Reading a TSV (Tab-Separated Values) file in Python involves parsing the file and extracting structured data where each field is separated by a tab character (\t). In this article, we will use a sample file named GeekforGeeks.tsv to demonstrate how to read data from a TSV file.

Using read_csv(sep='\t')

Pandas library provides a powerful read_csv() function and by simply setting sep='\t', you can handle TSV files effortlessly. It reads the entire file into a structured DataFrame, making it perfect for data analysis and manipulation.

Python
import pandas as pd
df = pd.read_csv('GeekforGeeks.tsv', sep='\t')
print(df)

Output

Outputy
Using read_csv(sep='\t')

Explanation: pd.read_csv(...) reads a tab-separated file using pandas and stores the data in df, a DataFrame that simplifies viewing, analyzing and handling tabular data.

Using csv.reader()

This method is great if you're looking for a lightweight and built-in solution. Python’s csv module can read TSV files just by setting the delimiter to '\t'. It reads the file line by line and returns each row as a list.

Python
import csv

with open("GeekforGeeks.tsv", newline='') as file:
    tsv_reader = csv.reader(file, delimiter='\t')
    for row in tsv_reader:
        print(row)

Output

Output
Using csv.reader()

Explanation: csv.reader() reads the TSV file line by line, splitting each row into a list using the tab ('\t') delimiter. Each line is printed as a list of values.

Using Generator expression

This is a minimal and memory-friendly approach for quick tasks or when working with very large files line by line. It doesn't require any libraries and processes each line as it’s read.

Python
with open("GeekforGeeks.tsv") as f:
    data = (line.strip().split('\t') for line in f)
    for row in data:
        print(row)

Output

Output
Using generator expression

Explanation: Generator expression read the file line by line, strips any leading spaces, splits the line by tabs and prints each row as a list.

Using csv.DictReader()

If you want to access each row using column headers as keys, csv.DictReader() is a perfect fit. It reads each row into a dictionary where keys are the column names, making your code more readable.

Python
import csv

with open('GeekforGeeks.tsv', newline='') as f:
    reader = csv.DictReader(f, delimiter='\t')
    for row in reader:
        print(row)

Output

Output
Using csv.DictReader()

Explanation: csv.DictReader() reads the TSV file and returns each row as an ordered dictionary, using the first line of the file as column headers.

Comment