CSV vs TSV: What's the Real Difference?
I lost a Tuesday afternoon to a single tab character.
A client's export looked like a perfectly normal CSV. It opened in Excel without complaint, and then my import script quietly dropped three columns the second it ran. The file wasn't corrupt. It was TSV wearing a .csv extension, and nobody had mentioned it. That, right there, is the whole CSV vs TSV problem in one sentence: the two formats are nearly identical, which is exactly why they trip you up.
Here's what I wish someone had handed me that afternoon โ what actually separates the two, when each one saves you grief, and how to tell which you're really holding before it costs you an afternoon of your own.
They're the same table, wearing different separators
Strip away the folklore and both formats are the same simple idea: a plain-text table, one row per line, fields laid out left to right. The only difference โ the entire difference โ is the character between the fields. CSV uses a comma. TSV uses a tab. Change the separator and you've changed the format. Everything else follows from that one choice.
Think of them like a Phillips screw and a flathead. Same job โ hold two boards together โ but grab the wrong driver and you strip the head. The screw was never the problem. The bit in your hand was.
The comma is the whole argument against CSV
Commas show up inside real data constantly. Portland, OR has one. So does 1,200.00. So does almost every product description a marketing team ever wrote. The moment a value contains the same character that's supposed to separate values, the format has to defend itself โ and CSV's defense is quoting: wrap the field in double quotes, and if the value itself contains a quote, double it up.
That rule is fine on paper. In practice it's the single biggest source of mangled data I run into, because one tool quotes differently than the next, and a file that skips quoting where it should have used it splits a name straight down the middle. If you've ever watched an address land two columns to the right of where it belongs, you've met this bug. It's the same failure I walked through in how to clean a messy CSV, and it starts with the delimiter every time. For the full rundown of the quoting rules, what a CSV actually is covers the format end to end.
Why TSV skips most of the drama
Tabs almost never appear inside real-world data. Nobody types a tab into a customer's name. So TSV mostly sidesteps the quoting circus entirely โ the separator and the content don't fight, so there's usually nothing to escape. That's also why tab-separated data pastes so cleanly into a spreadsheet: copy a block of TSV, click a cell, paste, and every value lands where it should.
But TSV buys that simplicity with a real trade-off, and it's worth saying out loud. TSV has no universal escaping standard. CSV, for all its comma trouble, has a documented reference specification (RFC 4180) to point at when tools disagree. TSV doesn't have an equivalent that everyone follows. So on the rare day a value genuinely contains a tab or a line break, there's no portable, agreed-upon way to represent it โ different tools improvise, and improvisation is how data goes missing.
So which one do you actually reach for?
Here's the verdict, no hedging.
Reach for CSV when the file is an interchange artifact โ something a script generates and another system consumes, where you want a documented standard behind you and the widest possible tool support. Reach for TSV when a spreadsheet is the destination, when you're doing a quick database load (MySQL's LOAD DATA defaults to tab-separated input), or when your data is so full of commas that CSV would spend the whole file escaping itself.
| Situation | Better pick |
|---|---|
| Public data exchange, want a spec | CSV |
| Pasting into Excel or Sheets | TSV |
| Values riddled with commas | TSV |
| Values that might contain tabs | CSV (with quoting) |
| Maximum library and tool support | CSV |
Most days it isn't a close call. The task tells you which one. The real mistake is picking by habit instead of by task โ reaching for CSV because it's the default noun in your head, then spending twenty minutes escaping commas you never had to fight.
Tell them apart before you trust them
The extension lied to me. So look at the bytes instead. Open the file in a CSV viewer and glance at how the columns break โ if commas inside values are splitting your data, you're holding comma-separated text; if everything lines up cleanly with no quotes in sight, it's probably tabs. When you know what you've got and need the other one, convert it properly instead of renaming: CSV to TSV rewrites the delimiters and handles the quoting, TSV to CSV goes the other direction, and the CSV delimiter converter handles the oddballs โ semicolons, pipes, anything in between.
And when you're done comparing formats, the smartest move is often to leave both behind. Convert the table into structured data with a CSV to JSON step, and every row is forced to carry the same keys โ a ragged line fails loudly right there instead of three tables downstream.
That Tuesday I lost? It ended the second I stopped trusting the .csv on the end of the filename and actually looked at what was between the columns. Check the delimiter first. The format will tell you what it is โ you just have to read the file instead of its name.
Try the tools
Frequently Asked Questions
What is the difference between CSV and TSV?
Both store a table as plain text with one record per line. CSV separates the fields in each row with commas; TSV separates them with tab characters. That single delimiter choice is the only structural difference, but it changes how much quoting and escaping the format needs.
Is TSV better than CSV?
Neither is universally better. TSV avoids most quoting headaches because tabs rarely appear inside data, which makes it cleaner for values full of commas and for pasting into spreadsheets. CSV has a documented standard (RFC 4180) and wider tool support. Pick by task, not by preference.
Can I just rename a .csv file to .tsv?
No. The extension is only a label; the delimiter inside the file is what matters. Renaming a comma-separated file to .tsv leaves it comma-separated. To actually change formats you have to convert it so the delimiters are rewritten.
Does Excel open TSV files?
Yes. Excel and Google Sheets both read tab-separated data, and pasting TSV directly into a sheet spreads it across cells automatically. TSV is often the smoother choice when your end goal is a spreadsheet.
How do I convert between CSV and TSV?
Use a converter that rewrites the delimiter and adjusts quoting, such as a CSV to TSV or TSV to CSV tool, or a general delimiter converter for other separators like semicolons or pipes. Avoid a blind find-and-replace, which breaks any field that legitimately contains the delimiter.
Marisol Vega writes for CodeUtilityKit, where the team builds free, privacy-first developer tools that run entirely in your browser. Every guide is written and reviewed by developers who use these tools daily.