CSV versus TSV: welk scheidingstekenformaat moet u gebruiken?
Snel antwoord
Gebruik CSV voor algemene data-uitwisseling, spreadsheet import/export en maximale compatibiliteit. Gebruik TSV wanneer je data komma's bevat maar geen tabs, om quoting en escapen te vermijden. TSV is veelvoorkomend in bioinformatica en NLP; CSV is de universele standaard.
Invoering
CSV (Comma-Separated Values) en TSV (Tab-Separated Values) zijn twee platte-tekst formaten voor tabellaire data. Beide slaan rijen op als regels met velden gescheiden door een scheidingsteken. CSV gebruikt komma's; TSV gebruikt tab-tekens. De keuze van scheidingsteken beïnvloedt escapen, compatibiliteit met spreadsheet-apps en het verwerken van tekstvelden die het scheidingsteken bevatten.
Stap voor stap
-
Vergelijk scheidingsteken en ontsnappen
CSV gebruikt komma's. Als een veld een komma bevat, moet deze tussen aanhalingstekens staan: "Smith, John". Als een veld aanhalingstekens bevat, moeten deze worden geëscaped: "Hij zei ""hallo""". TSV gebruikt tabbladen. Tabbladen verschijnen zelden in tekstgegevens, dus TSV-velden hoeven doorgaans niet te worden aangehaald of geëscaped – eenvoudiger parseren.
-
Vergelijk compatibiliteit
CSV wordt universeel ondersteund: Excel, Google Spreadsheets=Sheets, elke database, elke programmeertaal. TSV wordt ook breed ondersteund, maar is minder gestandaardiseerd; sommige tools interpreteren tabbladen anders. Excel detecteert beide automatisch, maar CSV is het standaard exportformaat.
-
Vergelijk de complexiteit van het parseren
Voor het parseren van CSV is een statusmachine vereist die de citatenregels afhandelt (RFC 4180). TSV parseren is triviaal: splits elke regel op tabteken. Dit maakt TSV sneller te parseren en minder foutgevoelig. CSV heeft echter een formele specificatie (RFC 4180); TSV heeft geen formele standaard.
-
Vergelijk gebruiksscenario's
CSV: spreadsheet import/export, gegevens APIs, ETL-pijplijnen, configuratiebestanden, universele gegevensuitwisseling. TSV: bio-informatica (BLAST, GFF), NLP (CoNLL-formaat), klembordgegevens (kopiëren vanuit Excel = TSV), logbestanden met tabscheidingstekens.
-
Beslis op basis van uw gegevens
Als uw gegevens komma's bevatten (namen, adressen, zinnen): TSV vermijdt aanhalingstekens. Als uw gegevens tabbladen bevatten (zeldzaam in tekst): CSV vermijdt aanhalingstekens. Als u maximale compatibiliteit nodig heeft: CSV. Als u eenvoudiger parseren wilt en uw gegevens zonder tabbladen zijn: TSV.
Voorbeelden
Dezelfde gegevens in CSV en TSV
Invoer: CSV: naam,leeftijd,stad\n"Smith, John",30,"New York, NY"\nTSV: naam\tage\tstad\nSmith, John\t30\tNew York, NY
Uitvoer: CSV vereist aanhalingstekens voor velden met komma's. TSV hoeft niet te worden aangehaald omdat er geen tabbladen in de gegevens voorkomen.
Veelvoorkomende problemen
- CSV randgevallen voor aanhalingstekens: velden die komma's, aanhalingstekens of nieuwe regels bevatten, vereisen RFC 4180-regels voor aanhalingstekens - een naïeve splitsing door komma's zal gegevens met ingebedde komma's beschadigen.
- TSV heeft geen formele standaard: in tegenstelling tot CSV (RFC 4180) heeft TSV geen officiële specificaties, dus tools kunnen randgevallen anders afhandelen - gebruik TSV alleen binnen gecontroleerde pijplijnen.
- Problemen met Excel-codering: Excel kan CSV exporteren met BOM- of landspecifieke scheidingstekens (puntkomma in EU-landinstellingen) - geef UTF-8-codering op en verifieer het scheidingsteken bij het importeren.
- Dubbelzinnigheid van nieuwe regels: CSV velden met ingebedde nieuwe regels zijn geldig, maar splitsen regel voor regel af - TSV heeft dit probleem zelden omdat tabs ongebruikelijk zijn in tekstgegevens.
Tips
- Gebruik CSV voor maximale compatibiliteit; elke spreadsheet, database en programmeertaal ondersteunt dit standaard.
- Gebruik TSV als uw gegevens komma's bevatten, maar geen tabs (namen, adressen, zinnen) om te voorkomen dat u de complexiteit volledig citeert.
- Gebruik altijd een goede CSV parser (niet string.split) om RFC 4180-quoteregels af te handelen; naïef splitsen corrumpeert velden met ingebedde komma's of aanhalingstekens.
- Bij het kopiëren van gegevens uit Excel naar een teksteditor gebruikt het klembord de indeling TSV: plak deze in een .tsv-bestand om velden met komma's correct te behouden.