2010-06-21 103 views
2

我正在尋找一些最佳做法,只要處理csv和製表符分隔的文件。製表符分隔或逗號分隔輸出中的新行

對於CSV文件我已經做了一些格式化,如果一個值包含逗號或雙引號但如果該值包含一個新的行字符?我是否應該保留新行並保留雙引號的值並在值內跳出任何雙引號?

製表符分隔文件的問題也一樣。如果不相同,我認爲答案會非常相似。

回答

1

通常在保留\n的同時利用換行字符將被包含在" "字符串中的事實。這不會造成歧義,但如果您必須使用普通的texteditor查看該文件,那真的很難看。

但是這是你應該怎麼做,因爲除了雙引號本身,你不會在CSV中的字符串中跳過任何內容。

+0

感謝您的快速回答!那是我想我只是想與其他人確認的事情 – 2010-06-21 23:33:18

0

@Jack是對的,你最好的選擇是保持\n不變,因爲如果是這樣的話你會期望它在雙引號內。

與大多數情況一樣,我認爲這裏的一致性是關鍵。據我所知,如果您的值跨越多行,包含逗號或包含雙引號,則只需要雙引號。在我看到的一些實現中,所有值都被轉義並且用雙引號,因爲它使得解析算法更簡單(從不存在轉義和雙引號的問題,並且讀取CSV時相反)。

這不是最適合空間優化的解決方案,但是對於您自己的圖書館和將來可能會使用它的其他人來說,讀取和寫入文件是一件微不足道的事情。