跳到主要内容
FreeOnlineTools Go
简体中文
比较

CSV 与 TSV:您应该使用哪种分隔符格式?

作者:{author} · 更新日期:2026-09-02

快速解答

使用 CSV 进行通用数据交换、电子表格导入/导出和最大兼容性。当数据包含逗号但不包含制表符时,请使用 TSV ,以避免引用和转义复杂性。 TSV 在生物信息学和 NLP 中很常见; CSV 是表格数据的通用默认值。

介绍

CSV(逗号分隔值)和 TSV(制表符分隔值)是表格数据的两种纯文本格式。两者都将行存储为带有由分隔符分隔的字段的行。 CSV 使用逗号; TSV 使用制表符。分隔符的选择会影响转义、与电子表格应用程序的兼容性以及包含分隔符的文本字段的处理。

步步

  1. 比较分隔符和转义符

    CSV 使用逗号。如果字段包含逗号,则必须用引号引起来:“Smith, John”。如果字段包含引号,则必须对其进行转义:“He said ”“hello”””。 TSV 使用制表符。制表符很少出现在文本数据中,因此 TSV 字段通常不需要引用或转义 - 更简单的解析。

  2. 比较兼容性

    CSV 得到普遍支持:Excel、Google Sheets=Sheets、每种数据库、每种编程语言。 TSV 也得到了广泛支持,但标准化程度较低——一些工具对选项卡的解释不同。 Excel 会自动检测两者,但 CSV 是默认导出格式。

  3. 比较解析复杂度

    CSV 解析需要状态机来处理引用规则(RFC 4180)。 TSV 解析很简单:用制表符分割每一行。这使得 TSV 的解析速度更快并且更不容易出错。然而,CSV 有一个正式的规范(RFC 4180); TSV 没有正式标准。

  4. 比较用例

    CSV:电子表格导入/导出、数据APIs、ETL管道、配置文件、通用数据交换。 TSV:生物信息学(BLAST、GFF)、NLP(CoNLL 格式)、剪贴板数据(从 Excel 复制 = TSV)、带有制表符分隔符的日志文件。

  5. 根据您的数据做出决定

    如果您的数据包含逗号(名称、地址、句子):TSV 避免引用。如果您的数据包含制表符(在文本中很少见):CSV 避免引用。如果您需要最大兼容性:CSV。如果您想要更简单的解析并且您的数据是无制表符的:TSV。

示例

CSV 和 TSV 中的数据相同

输入: CSV: 姓名、年龄、城市\n"史密斯,约翰",30,"纽约,纽约"\nTSV: 姓名\tage\tcity\n史密斯,约翰\t30\t纽约,纽约

输出: CSV 需要用逗号对字段进行引号。 TSV 不需要引用,因为制表符不会出现在数据中。

常见问题

  • CSV 引用边缘情况:包含逗号、引号或换行符的字段需要 RFC 4180 引用规则 - 用逗号进行天真的分割会破坏嵌入逗号的数据。
  • TSV 没有正式标准:与 CSV (RFC 4180) 不同,TSV 没有官方规范,因此工具可能会以不同方式处理边缘情况 - 仅在受控管道内使用 TSV。
  • Excel 编码问题:Excel 可能会使用 BOM 或区域设置特定的分隔符(欧盟区域设置中的分号)导出 CSV — 指定 UTF-8 编码并在导入时验证分隔符。
  • 换行符歧义:嵌入换行符的 CSV 字段有效,但会破坏逐行解析 - TSV 很少出现此问题,因为制表符在文本数据中并不常见。

提示

  • 使用 CSV 以获得最大兼容性 - 每个电子表格、数据库和编程语言都原生支持它。
  • 当您的数据包含逗号但不包含制表符(名称、地址、句子)时,请使用 TSV 以避免完全引用复杂性。
  • 始终使用正确的 CSV 解析器(不是 string.split)来处理 RFC 4180 引用规则 - 天真的分割会破坏带有嵌入逗号或引号的字段。
  • 将数据从 Excel 复制到文本编辑器时,剪贴板使用 TSV 格式 — 粘贴到 .tsv 文件中以正确保留带逗号的字段。

相关工具

相关指南

参考