逗号分隔值
| 扩展名 | .csv 或 .txt |
|---|---|
| 互联网媒体类型 | text/csv |
| 格式 | 跨平台,串行数据流 |
| 專門屬 | database information organized as field separated lists |
| 标准 | RFC 4180 |
逗号分隔型取值格式(英文全称为Comma Separated Values,簡稱CSV),是一种纯文本格式,用来存储数据。在CSV中,数据的字段由逗号分开,程序通过读取文件重新创建正确的字段。
CSV文件是一个计算机数据文件用于执行审判和真正的组织工具,逗号分隔的清单。CSV文件以数字存储的数据结构表的形式列出,相关的项(成员)组与其他项(成员)由逗号隔开。表格中的行与CSV文件的行对应。同行字段用逗号分隔。CSV文件常常被用于在两个不同的计算机程序之间移动表格数据,例如关系数据库程序和电子表格程序。
目录 |
[编辑] 技术背景
.csv 文件格式的使用可以追溯至早期的商用电脑,它被大范围使用于电脑内部不同数据文字格式大小的转化。基于此原由,csv文档格式适用于任何电脑平台。
在不同的.csv导出导入工具中也允许用其他的符号作为分隔符。一些简单的.csv转换工具不允许字段数值中存在逗号或者其他特殊符号例如换行符。更多复杂的CSV转换工具允许字段数值中包含有逗号或特殊符号。它们通常用双引号括住有特殊符号的数值,内容中的双引号符号可以用两个双引号来表示。也有一些CSV工具用转义符号例如利用反斜扛对保留字符进行编码。
在计算机科学方面,这种类型的格式是所谓的“平面文件”,因为只有一个表可以存储在CSV文件。大多数系统都使用了一系列的表来存储他们的信息,即必须“移”到一个单一的表,往往信息重复几次行,创建一个文本文件。
[编辑] 历史
CSV是一项古老的技术,比个人电脑的出现还早至少10年。运行于OS/360环境下的IBM Fortran编译器在1967就支持这种技术。相对于固定列宽数据格式,逗号分隔数据格式不仅在输入到打孔卡时更加方便,而且在输错位置时也不容易产生错误结果。
(以下应为自动翻译结果,需要人工重新翻译。)
逗号分隔的列表(CSL公司)是一种数据 格式称为逗号分隔值(CSV)的最古老的天简单的电脑。在个人电脑产业(当时更普遍称为“家用电脑”),早期最常见的使用是由小企业创造的招标使用样板 套印 ,通过邮寄名单。
一些早期的应用软件,如文字处理机,让流“可变数据”要合并两个文件:一种形式的信,和CSL公司的名称,地 址,数据和其他数据方面,仍然是,仅仅是因为工作需要人力输入(建设清单)是很自然的和易于使用逗号分开划 定。CSL公司/ CSVs也被用来交换台式电脑之间的数据不同的架构,并进行简单的数据库的用途。
[编辑] 規範
逗号分隔列出日期之前,尽早从个人电脑,但被广泛应用于最早前IBM个人电脑时代的个人电脑磁带存储备份和交 换的信息的数据库机器的两种不同的架构。在这一天,负担得起的硬盘驱动器不存在,和许多小型企业试图实现 效益的计算使用软盘的软件。
CSV没有通用标准规范。不同的程序间CSV的标准有差异很常见,这可能导致交互操作困难。互联网通信的CSV文件,资料的IETF文件( 符合RFC 4180于2005年10月)介绍了格式的“text/csv格式”MIME类型登记的IANA负责。另一个相关的规格是由派出文字其中也包括CSV格式。
许多非正式文件的存在,说明CSV格式。如何:逗号分隔值(CSV)文件格式概述了CSV格式中使用最广泛的应用和解释它如何能最好地利用和支持。
[编辑] 基本规则
CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行分隔换行符。字段包含特殊字符(逗号,换行符,或双引号),必须以双引号括住。行内包含一个项目是空字符串,可以以双引号括住。字段的值包含双引号时,要双写这个双引号(就像把一个双引号当做转义符一样)。CSV文件格式并不需要特定的字符编码,字节顺序,或行终止格式。
- 每个记录是一个行终止了换行符(ASCII码/低频= 0×0A)或回车换行符和一双(ASCII码/ CRLF = 0×0D0×0A),然而,线路中断可以嵌入。
- 字段用逗号分隔(虽然地点在逗号作为小数点,分号是用来代替作为定界符)
1997,Ford,E350
- 在某些的CSV实施,领导和尾随空格或制表符,毗邻逗号,装饰。这种做法是有争议的 , 实际上是明文禁止的RFC 4180,其中规定,“被认为是空间的一个组成部分领域 , 而不应被忽视。”
- 各领域内的嵌入式逗号必须存放在双引号字符。
- 各领域内的嵌入式双引号字符必须是封闭的双引号字符,每一个嵌入式双引号字符必须用一对双引号字符。
- 各领域内的嵌入式换行符必须封闭在双引号字符。
- 领域的前导或尾随空格内必须封闭双引号字符。 (见评论领导和尾随空格以上。)
- 字段可能永远是封闭的双引号字符,是否有必要或没有。
- 第一条记录中的CSV文件中可能包含列名的每个领域。
[编辑] 舉例說明
| 年 | 製造商 | 型號 | 說明 | 價值 |
| 1997 | Ford | E350 | ac, abs, moon | 3000.00 |
| 1999 | Chevy | Venture "Extended Edition" | 4900.00 | |
| 1999 | Chevy | Venture "Extended Edition, Very Large" | 5000.00 | |
| 1996 | Jeep | Grand Cherokee | MUST SELL! air, moon roof, loaded |
4799.00 |
上面表格內容若以CSV格式表示就會像下列:
年,製造商,型號,說明,價值
1997,Ford,E350,"ac, abs, moon",3000.00
air, moon roof, loaded",4799.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00
1999,Chevy,"Venture ""Extended Edition, Very Large""","",5000.00
1996,Jeep,Grand Cherokee,"MUST SELL!
以上這個CSV的例子說明了:
- 包含逗號, 雙引號, 或是換行符的字段必須放在引號內.
- 字段內部的引號必須在其前面增加一個引號來實現文字引號的轉碼.
- 分隔符逗號前後的空格 可能不會 被修剪掉. 這是RFC 4180的要求.
- 元素中的換行符將被保留下來.
[编辑] 應用支援
因為CSV文件格式非常简单,幾乎所有的電子表格和資料庫管裡系統都有支援。許多程式語言也提供了函式庫支持 CSV 檔案的匯入或匯出。事實上,許多程式都允许 CSV 文件使用任何分隔符。