The easiest way to convert a tab-delimited values (TSV) file to a comma-separated values (CSV) file is to use the following three lines of code:
import pandas as pd
df = pd.read_csv('my_file.txt', sep='\t', header=None)
df.to_csv('my_file.csv', header=None)
We’ll explain this and other approaches in more detail next—scroll down to Method 3 for this exact method.
Problem Formulation
Given a tab-delimited file with one tab character '\t'
between two values in a given column.
Input: 'my_file.tsv'

'my_file.tsv'
with tab '\t'
separated values.Alice DataScience $100000 Bob Programmer $90000 Carl Manager $122000 Dave Freelancer $144000
How to convert the tab-delimited values (TSV) to a comma-separated values (CSV) file?
Output: 'my_file.csv'
0,Alice,DataScience,$100000
1,Bob,Programmer,$90000
2,Carl,Manager,$122000
3,Dave,Freelancer,$144000
We’ll also look at slight variations of this problem. Let’s go!
Method 1: String Replace Single Tab
The most straightforward way to convert a tab-delimited (TSV) to a comma-separated (CSV) file in Python is to replace each tabular character '\t'
with a comma ','
character using the string.replace()
method. This works if two values are separated by exactly one tabular character.
Here’s an example input file 'my_file.tsv'
:

Here’s an example of some code to convert the tab-delimited file to the CSV file:
with open('my_file.tsv') as f: # Read space-delimited file and replace all empty spaces by commas data = f.read().replace('\t', ',') # Write the CSV data in the output file print(data, file=open('my_file.csv', 'w'))
Output file 'my_file.csv'
:

If you have any doubts, feel free to dive into our related tutorials:
- Python String Replace Method
- Python
open()
Function - Python
print()
to File - Python
print()
Function - Python Context Managers
Method 2: Regex Replace Arbitrary Tabs
To replace one '\t'
or more tabs '\t\t\t'
between two column values with a comma ','
and obtain a CSV, use the regular expressions operation re.sub('[\t]+', ',', data)
on the space-separated data
.
If you have any doubts, feel free to dive into our related tutorials:
- Python Regex
re.sub()
- Python Regex
[]
Character Class - Python Regex
+
Quantifier - Python Regex Superpower
Here’s an example input file 'my_file.tsv'
, notice the additional tabular characters that may separate two column values:

Here’s an example of some code to convert the TSV to the CSV file:
import re with open('my_file.txt') as infile: # Read space-delimited file and replace all empty spaces by commas data = re.sub('[ ]+', ',', infile.read()) # Write the CSV data in the output file print(data, file=open('my_file.csv', 'w'))
Output file 'my_file.csv'
:

Method 3: Pandas read_csv() and to_csv()
To convert a tab-delimited file to a CSV, first read the file into a Pandas DataFrame using pd.read_csv(filename, sep='\t+', header=None)
and then write the DataFrame to a file using df.to_csv(outfilename, header=None)
.
Here’s an example input file 'my_file.tsv'
:

Here’s an example of some code to convert the tab-delimited file to the CSV file:
import pandas as pd # Read space-delimited file df = pd.read_csv('my_file.tsv', sep='\t+', header=None) # Write DataFrame to file df.to_csv('my_file.csv', header=None)
Output file 'my_file.csv'
:

You can also use the simpler sep='\t'
if you are sure that only a single tabular character separates two column values.
If you have any doubts, feel free to dive into our related tutorials:
Summary
We examined three great ways to convert a space-delimited to a comma-separated CSV file:
- Method 1: String Replace Single Tab
- Method 2: Regex Replace Arbitrary Tabs
- Method 3: Pandas
read_csv()
andto_csv()
Thanks for taking the time to read this article, my friend! ππ
Regex Humor


While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.