共找到6條詞條名為CSV的結果 展開

CSV

逗號分隔值文件格式

徠逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。純文本意味著該文件是一個字元序列,不含必須像二進位數字那樣被解讀的數據。CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字元或字元串,最常見的是逗號或製表符。通常,所有記錄都有完全相同的欄位序列。通常都是純文本文件。建議使用WORDPAD或是記事本(NOTE)來開啟,再則先另存新檔後用EXCEL開啟,也是方法之一。

CSV文件格式的通用標準並不存在,但是在RFC 4180中有基礎性的描述。使用的字元編碼同樣沒有被指定,但是7-bitASCII是最基本的通用編碼。

用法


CSV是一種通用的、相對簡單的文件格式,被用戶、商業和科學廣泛應用。最廣泛的應用是在程序之間轉移表格數據,而這些程序本身是在不兼容的格式上進行操作的(往往是私有的和/或無規範的格式)。因為大量程序都支持某種CSV變體,至少是作為一種可選擇的輸入/輸出格式。
例如,一個用戶可能需要交換信息,從一個以私有格式存儲數據的資料庫程序,到一個數據格式完全不同的電子表格。最可能的情況是,該資料庫程序可以導出數據為“CSV”,然後被導出的CSV文件可以被電子表格程序導入。
“CSV”並不是一種單一的、定義明確的格式(儘管RFC 4180有一個被通常使用的定義)。因此在實踐中,術語“CSV”泛指具有以下特徵的任何文件:
純文本,使用某個字符集,比如ASCII、Unicode、EBCDIC或GB2312;
由記錄組成(典型的是每行一條記錄);
每條記錄被分隔符分隔為欄位(典型分隔符有逗號、分號或製表符;有時分隔符可以包括可選的空格);
每條記錄都有同樣的欄位序列。
在這些常規的約束條件下,存在著許多CSV變體,故CSV文件並不完全互通。然而,這些變異非常小,並且有許多應用程序允許用戶預覽文件(這是可行的,因為它是純文本),然後指定分隔符、轉義規則等。如果一個特定CSV文件的變異過大,超出了特定接收程序的支持範圍,那麼可行的做法往往是人工檢查並編輯文件,或通過簡單的程序來修復問題。因此在實踐中,CSV文件還是非常方便的。

規則


1 開頭是不留空,以行為單位。
2 可含或不含列名,含列名則居文件第一行。
3 一行數據不跨行,無空行。
4 以半形逗號(即,)作分隔符,列為空也要表達其存在。
5 列內容如存在半形逗號(即,)則用半形雙引號(即"")將該欄位值包含起來。
6 列內容如存在半形引號(即")則應替換成半形雙引號("")轉義,並用半形引號(即"")將該欄位值包含起來。
7 文件讀寫時引號,逗號操作規則互逆。
8 內碼格式不限,可為 ASCII、Unicode 或者其他。
9 不支持特殊字元

實例


下面是一個實際 CSV 文件中的部分內容,讓大家對他有一個感性的認識。我們選的是 Sjojo_Rescan 的 CSV 文件 (Sjojo 是 ASW- 亞洲掃圖風的成員之一)。
sj_mino1001.jpg,715282,4FB55FE8,
sj_mino1002.jpg,471289,93203C5C,
sj_mino1003.jpg,451929,C4E80467,
通常 CSV 文件開頭是不留空的,以行為單位,每行中記錄一張圖片的多項數據,每項數據用逗號來分隔(標準英文逗號)。一般說來集圖用的.CSV 文件的格式是這樣的:
文件名, 文件大小 (以位元組為單位),CRC 校驗值, 註釋 (可省略)
sj_mino1001.jpg,715282,4FB55FE8,
| | | |
文件名 文件大小 CRC 值 註釋 (已省略)
如果你的機器上裝了 Microsoft Excel的話,.csv 文件默認是被Excel打開的。需要注意的是,當你雙擊一個.CSV 文件,Excel 打開它以後即使不做任何的修改,在關閉的時候 Excel 往往會提示是否要改成正確的文件格式,這個時候如果選擇“是”,因為 Excel 認為.CSV 文件中的數字是要用科學記數法來表示的,Excel 會把 CSV 文件中所有的數字用科學計數來表示(2.54932E+5 這種形式),這樣操作之後,只是在 Excel 中顯示的時候會不正常,而 csv 文件由於是純文本文件,在使用上沒有影響;如果選擇了“否”,那麼會提示你以 xls 格式另存為 Excel 的一個副本。
所以如果你的 CSV 文件絕大部分都是用在集圖上的話,建議把.CSV 的默認打開方式改成任意一個文本 編輯器,系統自帶的記事本就是個不錯的選擇。
好,讓我們回到 CSV 文件的格式中來。見上面,從左到右 sj_mino1001.jpg 是文件名,715282 是以位元組表示的文件大小。當文件名中包含逗號的時候,由於逗號在 CSV 文件中特殊的作用,為了不至於產生歧義,需要用引號把文件名括起來。比如 "The Art, Fantasy.jpg",384211,...,.... 接著是一個 8 位的 16 進位數字 4FB55FE8,這是文件的 CRC32 校驗值。整個 CSV 文件的精髓都在這裡。
讓我們舉個小例子來說明它的意義:Sjojo 發布了一張圖 sj_mino1001.jpg,假設你是從朋友手中拿到這張圖的,那麼你肯定常常會有這樣的疑問,這張圖在傳播的過程中是否被改動過呢?是否無意中遭到了損壞呢?CRC 就是為解決這個問題而存在的。
一般情況下,掃圖家每發布了一套圖,就同時放出一個 CSV 文件(這種 CSV 通常叫做 Official CSV,也就是官方發布的 CSV 的意思),這個 CSV 中的 CRC 值是用專門的軟體通過 CRC32 演演算法(常用的 CRC 演演算法還有 CRC16)對文件運算後生成的一個值,這個值可用作文件真身的標誌。在絕大多數情況下,如果這個文件在傳播過程中無論是大小還是內容被改動過。那麼,用同樣的 CRC32 演演算法再對文件進行運算后產生的 CRC 校驗值就完全不一樣了。如果得出的 CRC 值是一樣的,則完全有理由認為這個文件是真身,沒有被改動過。還有些時候,收來的圖片文件名被改動過了,那麼你怎麼知道誰是誰呢?
這個時候 CRC 值又起作用了:用專用的軟體對圖片處理后,可以得到文件的大小和 CRC 值,然後根據大小和 CRC 值在 CSV 中尋找是否有適合的圖片。如果有,就會把圖片的名字改成 CSV 里的。
舉個例子,你收到了一張圖片,名字是 pic0001.jpg,同時你知道這張圖片是 Sjojo_Rescan 這個集子裡面的,但是不知道具體是哪一張。用軟體得到它的大小和 CRC 分別是 715282 和 4FB55FE8,那麼軟體在 CSV 文件里找到一行 sj_mino1001.jpg,715282,4FB55FE8, 大小和 CRC 都符合,軟體就認為這張圖片的原名是 sj_mino1001.jpg,接著自動把文件的名字改成 sj_mino1001.jpg
改動的不是 CSV 文件而是圖片的文件名。接下來的是註釋和說明,可以省略掉。需要注意的是註釋的後面是沒有逗號的,如果要省略註釋的話,一定要在 CRC 值的後面保留一個逗號,否則軟體會把 CRC 值認為是註釋的。

規範


逗號分隔列出日期之前,儘早從個人電腦,但被廣泛應用於最早前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文件中可能包含列名的每個領域。

舉例說明

製造商型號說明價值
1997FordE350ac, abs, moon3000.00
1999ChevyVenture "Extended Edition"4900.00
1999ChevyVenture "Extended Edition, Very Large"5000.00
1996JeepGrand CherokeeMUST SELL! air, moon roof, loaded4799.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 文件有了個大概地了解,對它的用途應該也有些模糊的概念了吧。我們收集圖片往往是通過各種各樣不同的渠道,比如從網站上,IRC 上,抑或乾脆是朋友送的光碟。在整個的傳播過程中,圖片有可能遭受到各種各樣的非人待遇。尤其是從網站上收來的圖片。有些時候僅僅是簡單的改了一下名字,更多的時候由於很多 PLMM 站空間有限,常把圖片的尺寸縮小,或者把圖片文件縮小。一張 1356x588 的圖被改成了 678x294,或者一個四五百 K 的文件被縮成了幾十 K 都是常有的事。比較可惡的是,許多網站把原來掃圖家的 Logo 去掉,打上自己網站的 Logo。還有些許搞笑派的玩家,把各種各樣的圖片移花接木,改頭換面。這些對於一般的看圖娛樂無傷大雅,但是對於集圖來說,收到這樣的圖片是無法容忍的。如何驗明圖片的正身,這是掃圖家和集圖者共同面對的問題。CSV 文件就是為了解決這樣的問題而出現的。CSV 文件最早用在簡單的資料庫里,由於其格式簡單,並具備很強的開放性,所以起初被掃圖家用作自己圖集的標記。如上面所說的,CSV 文件是個純文本文件,每一行表示一張圖片的許多屬性。你在收一套圖集時,只要能找到它的 CSV 文件,用專用的軟體校驗后,你對該圖集的狀況就可以了如指掌。比如這套圖一共有多少張,你收到了多少張,哪些是原圖,那些是可能被改動過或者損壞了的圖片...... 我們可以把.CSV 文件看作一份索引,你不但可以"按圖索驥",還可以檢查自己收來的"馬子"血統是 否純正。

來源


CSV 文件的來源通常有兩種:一種是掃圖家自己發布的 CSV,一般稱作 Official CSV。也就是官方發布的 CSV,通常說來是有相當的權威性的。比較特殊的是亞洲的許多掃圖家,除了公開發布的圖以外,還有一些私下發布的 Special 圖,或者一些專門送給朋友的圖。加上掃圖家不願意或者不會做 CSV,所以他們圖集的 CSV 往往由集圖界中一些資深前輩出頭來做。在這種情況下,往往會出現一個圖集有好幾個版本的 CSV 文件,並且每個版本之間都有不小的差別。

文件轉換


打開包含地址數據的 Excel 工作簿。
在地址示例中,第一個地址包含四行,第二個地址僅包含三行。此外,每個地址集之間相隔一行。
要將地址數據成功轉換為 CSV 文本文件,所有地址必須包含相同的行數並且每個地址集之間相隔的行數必須相同。例如,將地址示例更改為以下形式:
A1徠:Jane Clayton
A2:Microsoft
A3:456 Elm Street
A4:Sometown, USA 67890
A5:
A6:
A7:Jose Saraiva
A8:789 Oak Road
A9:
A10:Mytown, USA 54321
注意:每個地址集都包含四行,相隔兩行。
要在 Excel 工作表中插入新行,請選擇要在其上插入新行的行標題。在“插入”菜單上,單擊“行”。
注意:在 Excel 2007 中,要在工作表中插入新行,需選擇要在其上插入新行的行,單擊“主頁”選項卡上“單元格”組中的“插入”,然後單擊“插入工作錶行”。
在“文件”菜單上,單擊“另存為”。
注意:在 Excel 2007 中,單擊“Office 按鈕”,然後單擊“另存為”。
在“另存為”對話框中執行以下操作:
在“保存類型”框中,單擊“CSV (逗號分隔)(*.csv)”。
在“文件名”框中,鍵入 CSV 文件的名稱(例如 Address.csv),然後單擊“保存”。
如果收到下面的消息,請單擊“確定”:
選定的文件類型不支持包含多個工作表的工作簿。
· 如果只保存活動工作表,請單擊“確定”按鈕。
· 如果要保存所有工作表,請使用不同的文件名將其分別保存,或選擇一種支持多工作表的文件類型。
在收到以下消息時單擊“是”:
Address.csv 可能含有與 CSV (逗號分隔) 不兼容的功能。是否保持工作簿的這種格式?
· 如要保持這種格式,去掉所有不兼容的功能,請單擊“是”。
· 如要保留這些功能,請單擊“否”。然後再用最新 Excel 格式保存一份副本。
· 如想知道哪些內容會丟失,請單擊“幫助”。
在“文件”菜單上,單擊“關閉”,然後退出 Microsoft Excel。