案例库 · 软件与 IT · 技术决策 · 1970s–2005
CSV 之所以赢得数据交换,是因为它是每个电子表格都能读懂的纯文本
逗号分隔的纯文本行在 RFC 4180(2005年)将其规范化之前已被使用了数十年;Python 称 CSV 为电子表格和数据库最常用的导入/导出格式。
IETF · 电子表格和数据库厂商
解法
早在万维网出现之前,表格数据就需要在主机、电子表格和数据库之间移动,而每个人都用同样廉价的方式解决:将值用逗号分隔成行,以纯文本存储。这种做法传播得如此广泛,以至于几十年过去了,都没有人正式定义 CSV 文件到底是什么。
2005 年 10 月,IETF 发布了 RFC 4180《逗号分隔值(CSV)文件的通用格式与 MIME 类型》,将事实上的做法规范化,并注册了 text/csv MIME 类型。它并没有发明更好的格式——而是把大家已经在用的格式写了下来,因此采用该标准无需任何成本。
设计的最好证明在于工具。Python 标准库将 CSV 描述为“电子表格和数据库最常用的导入和导出格式”,市场上每个电子表格都实现了它。由于 CSV 文件可以在任何编辑器中读取,它的生命周期比任何编写它的工具都要长。
生效的原因
- 纯文本可以被任何工具读取——编辑器、脚本、主机、手机。
- 每个电子表格都已经支持它的导出和导入。
- text/csv MIME 类型使其在附件和处理上更安全。
- 将现有实践(RFC 4180)规范化胜过发明新格式。
取得的成效带逗号的纯文本不需要特殊阅读器利落
可借鉴之处
赢得交换的格式是其读取成本为零的格式:任何编辑器、任何脚本、任何电子表格都能生成和读取纯文本,因此采用它无需安装、许可或培训。
后续进展
RFC 4180 为 CSV 提供了通用定义和 MIME 类型,但该格式的主导地位早已确定:Python 文档至今仍称其为电子表格和数据库最常用的导入/导出格式,CSV 仍是表格数据在系统间移动的默认方式。
资料来源
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files
- csv — CSV File Reading and Writing
发现哪里写错了?告诉我们。