小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

CSV文件格式_csv 格式

 wuxinit_ 2023-05-15 發(fā)布于湖北

什么是CSV
逗號分隔值(Comma-Separated Values,CSV),其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本),文件的每一行都是一個(gè)數(shù)據(jù)記錄。每個(gè)記錄由一個(gè)或多個(gè)字段組成,用逗號分隔。使用逗號作為字段分隔符是此文件格式的名稱的來源,因?yàn)榉指糇址部梢圆皇嵌禾?,有時(shí)也稱為字符分隔值。

CSV廣泛用于不同體系結(jié)構(gòu)的應(yīng)用程序之間交換數(shù)據(jù)表格信息,解決不兼容數(shù)據(jù)格式的互通問題,一般按照傳輸雙方既定標(biāo)準(zhǔn)進(jìn)行格式定義,而其本身并無明確格式標(biāo)準(zhǔn)。

CSV用逗號分隔字段的基本思想是清楚的,但是當(dāng)字段數(shù)據(jù)也可能包含逗號或者甚至嵌入換行符時(shí),該想法變得復(fù)雜。 CSV實(shí)現(xiàn)可能無法處理這些字段數(shù)據(jù),或者可能會使用引號來包圍字段。引用并不能解決所有問題:有些字段可能需要嵌入引號,因此CSV實(shí)現(xiàn)可能包含轉(zhuǎn)義字符或轉(zhuǎn)義序列。

RFC 4180提出了MIME類型(”text/csv”)對于CSV格式的標(biāo)準(zhǔn),可以作為一般使用的常用定義,滿足大多數(shù)實(shí)現(xiàn)似乎遵循的格式。

CSV的格式規(guī)范
下面的格式規(guī)范定義來源于RFC 4180,附上原文供參考,一共也就七點(diǎn)。

1. 每一行記錄位于一個(gè)單獨(dú)的行上,用回車換行符CRLF(也就是\r\n)分割。

Each record is located on a separate line, delimited by a line break (CRLF). For example:

aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF
1
2
2. 文件中的最后一行記錄可以有結(jié)尾回車換行符,也可以沒有。

The last record in the file may or may not have an ending line break. For example:

aaa,bbb,ccc CRLF
zzz,yyy,xxx
1
2
3. 第一行可以存在一個(gè)可選的標(biāo)題頭,格式和普通記錄行的格式一樣。標(biāo)題頭要包含文件記錄字段對應(yīng)的名稱,應(yīng)該有和記錄字段一樣的數(shù)量。(在MIME類型中,標(biāo)題頭行的存在與否可以通過MIME type中的可選”header”參數(shù)指明)

There maybe an optional header line appearing as the first line of the file with the same format as normal record lines. This header will contain names corresponding to the fields in the file and should contain the same number of fields as the records in the rest of the file (the presence or absence of the header line should be indicated via the optional “header” parameter of this MIME type). For example:

field_name,field_name,field_name CRLF
aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF
1
2
3
4. 在標(biāo)題頭行和普通行每行記錄中,會存在一個(gè)或多個(gè)由半角逗號(,)分隔的字段。整個(gè)文件中每行應(yīng)包含相同數(shù)量的字段,空格也是字段的一部分,不應(yīng)被忽略。每一行記錄最后一個(gè)字段后不能跟逗號。(通常用逗號分隔,也有其他字符分隔的CSV,需事先約定)

Within the header and each record, there may be one or more fields, separated by commas. Each line should contain the same number of fields throughout the file. Spaces are considered part of a field and should not be ignored. The last field in the record must not be followed by a comma. For example:

aaa,bbb,ccc
1
5. 每個(gè)字段可用也可不用半角雙引號(“)括起來(不過有些程序,如Microsoft的Excel就根本不用雙引號)。如果字段沒有用引號括起來,那么該字段內(nèi)部不能出現(xiàn)雙引號字符。

Each field may or may not be enclosed in double quotes (however some programs, such as Microsoft Excel, do not use double quotes at all). If fields are not enclosed with double quotes, then double quotes may not appear inside the fields. For example:

"aaa","bbb","ccc" CRLF
zzz,yyy,xxx
1
2
6. 字段中若包含回車換行符、雙引號或者逗號,該字段需要用雙引號括起來。

Fields containing line breaks (CRLF), double quotes, and commas should be enclosed in double-quotes. For example:(下面原文的例子可能有些問題)

"aaa","b CRLF
bb","ccc" CRLF
zzz,yyy,xxx
1
2
3
7. 如果用雙引號括字段,那么出現(xiàn)在字段內(nèi)的雙引號前必須加一個(gè)雙引號進(jìn)行轉(zhuǎn)義。

If double-quotes are used to enclose fields, then a double-quote appearing inside a field must be escaped by preceding it with another double quote. For example:

"aaa","b""bb","ccc"
1
關(guān)于CSV文件解析
上面說過,CSV并不是一種單一的、定義明確的格式(盡管RFC 4180有一個(gè)被通常使用的定義)。因此在實(shí)踐中,術(shù)語“CSV”泛指具有以下特征的任何文件:

純文本,使用某個(gè)字符集,比如ASCII、Unicode、EBCDIC或GB2312;
由記錄組成(典型的是每行一條記錄);
每條記錄被分隔符分隔為字段(典型分隔符有逗號、分號或制表符;有時(shí)分隔符可以包括可選的空格);
每條記錄都有同樣的字段序列。
所以,在常規(guī)的約束條件下,存在著許多CSV變體,故CSV文件并不完全互通,如使用約定好的其他分隔符、轉(zhuǎn)義規(guī)則等。因此,實(shí)際使用CSV需要數(shù)據(jù)交換雙方約定規(guī)則(其實(shí)大體思路不變,一些細(xì)節(jié)),在進(jìn)行CSV文件讀寫就免不了進(jìn)行文件的解析。

正如CSV并不明確的格式,CSV文件的解析同樣沒有標(biāo)準(zhǔn)方法,一般可以自己實(shí)現(xiàn)讀寫,網(wǎng)上也有很多種不同語言的實(shí)現(xiàn)版本。例如opencsv、csvreader等。它們可能會與RFC中的規(guī)定有所出入,例如在csvreader中有要求:

前綴和后綴的空格字符,逗號和制表符,與逗號或記錄分隔符相鄰的內(nèi)容將被修剪。
為了保證前導(dǎo)和后綴空白字符的保留,必須通過將字段嵌入到雙引號集合中來限定字段。

使用時(shí)需要注意。
 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多