逗号分隔值

维基百科,自由的百科全书
跳转至: 导航搜索
abc
CsvDelimited001.svg
扩展名 .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
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的例子說明了:

  • 包含逗號, 雙引號, 或是換行符的字段必須放在引號內.
  • 字段內部的引號必須在其前面增加一個引號來實現文字引號的轉碼.
  • 分隔符逗號前後的空格 可能不會 被修剪掉. 這是RFC 4180的要求.
  • 元素中的換行符將被保留下來.

[编辑] 應用支援

因為CSV文件格式非常简单,幾乎所有的電子表格資料庫管裡系統都有支援。許多程式語言也提供了函式庫支持 CSV 檔案的匯入或匯出。事實上,許多程式都允许 CSV 文件使用任何分隔符。