Re: [問題] csv檔的格式
截取自於 #1D3f8CHP (C_and_CPP) 下前半段
以下是我直接從 M$ excel 存成 csv 結果之整理:
1. 若為純文字、數字,且其中不包含雙引號、單引號、逗號,
則直接以逗號分隔。
2. 若該格無任何內容,則直接跳過該格,即會出現連續二個逗號。
(這點和 wiki 上不同, wiki 指明,若無內容會以 ,"", 方式存)
3. 若該格內容有 雙引號或逗號 ,則將為該儲存格加上雙引號,
同時用 notepad 檔開啟結果 ,會發現原本的雙引號會以 2個雙引表示
ex: 12"27"53(excel 顯示) ---> "12""27""53"(csv文本)
4. 若該格內容「開頭」有單引號,excel 存完後開頭之單引都將不見
ex: '12'34'(excel 也無法顯示第一個單引號)
----> 12'34'(csv 文本儲存)
-------
回到你的問題,我不確定 wiki 上對於
1999 Chevy Venture "Extended Edition"
格式有無完全敘述,但依你之說法,它是屬於txt tab 分隔檔,即是以 [tab] 為分隔,
到時用 M$ excel 也可開啟,所以原之格式大概是
1999[tab]Chevy[tab]Venture "Extended Edition"
注意到 Venture "Extended Edition" 它只有以空白分隔,不是以 tab 分隔,
所以視作同一欄位。
現,若欲存 Veture Extened Edition
在 csv 裡,即使它有空白,但它非分隔符號 tab,存時仍存成
Veture Extened Edition
再加入欄位裡,一個雙引數用 csv 要用兩個雙引號表示的話,
Veture "Extened Edition" 就變成
Veture ""Extened Edition""
但如上述原則說過,當該欄位含有 雙引號 或 逗號 時,將在頭尾再加上一次雙引號
"Veture ""Extened Edition"""
其它欄位部份並無二異。
※ 引述《apiod ( )》之銘言:
: 剛看了wiki
: 1999 Chevy Venture "Extended Edition"
: 在csv檔會表示成
: 1999,Chevy,"Venture ""Extended Edition"""
: 我想問的是
: 為什麼 Vwnture "Extended Edition"
: 要變成 "Venture ""Extended Edition"""
: 雙引號又不是逗號,
: 照原本的Venture "Extended Edition"來表示會有什麼問題嗎?
簡單的說,用現有軟體開,它出現的結果不是個可預期的,
因它非 csv 逗號分隔可接受之格式。
我寫程式的話,會把這種東西額外當作 except 拉出來處理。
: 感謝解惑
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.78.41
※ 編輯: tropical72 來自: 180.177.78.41 (09/24 14:27)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
0
1
Programming 近期熱門文章
PTT數位生活區 即時熱門文章