Cookies voor statistiek en advertenties
We gebruiken cookies voor statistiek en voor advertenties, allebei naar Google. Weigeren verandert niets aan wat je te zien krijgt.Lees de privacypagina
TSV
Als CSV maar gescheiden met tabs, waardoor het probleem van een komma binnen een veld zich niet eens voordoet.
TSV
TSV is een puur tekstformaat dat in elke editor opengaat. Het wordt gebruikt voor gegevens tussen programma’s verplaatsen.
De extensie is .tsv en de volledige naam Tab-Separated Values. Allebei zeggen ze minder dan wat het bestand kan bevatten, en daar gaat de rest van deze pagina over.
Het gaat terug tot 1993. De specificatie is IANA text/tab-separated-values.
Aan een formaat dat zo lang leesbaar is gebleven kun je iets toevertrouwen dat je over tien jaar terug wilt hebben.
Ze is volledig gepubliceerd, dus wie het formaat wil uitvoeren kan dat uit het document doen in plaats van door te kijken hoe anderen het doen. Daarom duikt het in zo veel programma’s op, en daarom gaan bestanden van twintig jaar geleden nog steeds open. Openbaar is niet hetzelfde als royaltyvrij: waar een formaat een codec omhult, is de octrooilicentie een aparte vraag waarop de standaard geen antwoord geeft.
TSV bewaart zijn inhoud precies. Opnieuw opslaan verandert niets, dus je kunt het zo vaak openen, bewerken en wegschrijven als je wilt zonder dat er schade opstapelt — en dat is wat er een werkformaat van maakt in plaats van een afleverformaat.
TSV heeft geen commentaarsyntaxis. Alles wat toelicht moet buiten het bestand leven, en dat is goed om te weten voordat je het kiest voor iets dat een mens met de hand bijhoudt.
Microsoft Excel, LibreOffice Calc en pandas lezen het, en de meeste programma’s van dezelfde soort ook.
Als een bestand niet opengaat ligt het zelden aan het formaat — vaker is het programma ouder dan het formaat. Converteren naar iets ouders is de betrouwbare weg eromheen, en daarvoor is de rest van deze site bedoeld.
Geen enkele browser leest het.
Dat is veruit de meest voorkomende reden om het te converteren: niet dat het formaat slecht is, maar dat de plek waar je het bestand wilt tonen het niet kan lezen.
TSV is bedoeld om te openen en te wijzigen. Houd het bestand in dit formaat zolang het werk loopt, en exporteer eruit wanneer er een afgeronde versie nodig is.
De terugkerende klachten: kolomtypen worden bij het inlezen geraden in plaats van opgegeven.
Niets daarvan is een reden om het formaat te mijden. Het zijn de dingen die je beter kent voordat een ervan je verrast, en dat is een andere en een nuttigere bewering.
Een komma komt voortdurend voor in echte data — in adressen, bedrijfsnamen, vrije tekst. CSV verwerkt dat met citeerregels, en daar gaat het formaat mis: een veld met een aanhalingsteken binnen een geciteerd veld met een komma is legaal, vervelend en inconsistent geïmplementeerd.
Een tabteken komt bijna nooit binnen een veld voor, want niemand typt er eentje in een formulier. TSV kan citeren daarom meestal helemaal overslaan: splits elke regel op de tab en je hebt de velden, correct, zonder toestandsmachine.
Bio-informatica, waar genomische annotatiebestanden en expressiematrices standaard tabgescheiden zijn. Opdrachtregelwerk, want de standaard Unix-gereedschappen splitsen op witruimte.
Ook grote publieke datasets en database-exports, waar de data komma’s en proza bevat en de exporteur liever niet over citeren nadenkt.
De deugd van de tab is ook zijn gebrek: je kunt hem niet zien. Een bestand met een tab op de ene plek en vier spaties op de andere oogt identiek in een editor en parseert compleet anders.
Dit bijt het hardst wanneer een bestand met de hand bewerkt wordt. Elke degelijke editor kan witruimte tonen, en dat aanzetten voordat je een TSV aanraakt is een gewoonte van twee seconden die een uur verwarring voorkomt.
De IANA-specificatie is onverbiddelijk: velden mogen geen tabs of regeleindes bevatten, punt. Er is geen ontsnappingsmechanisme, wat het parsen juist simpel houdt.
In de praktijk zijn twee conventies ontstaan: sommige producenten ontsnappen met backslash-reeksen, andere passen CSV-achtig citeren toe. Geen van beide is universeel.
Excel opent een .txt of .tsv via het importdialoogvenster en verwerkt tabs correct, terwijl dubbelklikken op een .tsv iets minder behulpzaams doet afhankelijk van wat aan de extensie gekoppeld is.
Het pas ook dezelfde typegok toe die CSV’s ruïneert — voorloopnullen verdwijnen, codes worden datums. Importeer dus in plaats van openen, en zet lastige kolommen op Tekst.
CSV wanneer het bestand ergens onbekend naartoe gaat. Het is wat uploadformulieren en bedrijfssoftware bij naam verwachten.
TSV wanneer je beide kanten beheert en de data rommelig is — vol komma’s en vrije tekst — of wanneer het werk op een opdrachtregel gebeurt.
TSV streamt, zijn andere stille voordeel. Een bestand van elke grootte kan regel voor regel gelezen worden zonder het geheel te laden.
Voor iets echt groots en herhaaldelijk geanalyseerd is Parquet de betere bestemming: kolomgeoriënteerd, gecomprimeerd, getypeerd, en dramatisch sneller voor de query’s die mensen echt draaien.
| Extensie | .tsv, .tab |
|---|---|
| Mediatype | text/tab-separated-values |
| Voor het eerst gepubliceerd | 1993 |
| Specificatie | IANA text/tab-separated-values |