2010-06-21 81 views
2

我正在寻找一些最佳做法,只要处理csv和制表符分隔的文件。制表符分隔或逗号分隔输出中的新行

对于CSV文件我已经做了一些格式化,如果一个值包含逗号或双引号但如果该值包含一个新的行字符?我是否应该保留新行并保留双引号的值并在值内跳出任何双引号?

制表符分隔文件的问题也一样。如果不相同,我认为答案会非常相似。

回答

1

通常在保留\n的同时利用换行字符将被包含在" "字符串中的事实。这不会造成歧义,但如果您必须使用普通的texteditor查看该文件,那真的很难看。

但是这是你应该怎么做,因为除了双引号本身,你不会在CSV中的字符串中跳过任何内容。

+0

感谢您的快速回答!那是我想我只是想与其他人确认的事情 – 2010-06-21 23:33:18

0

@Jack是对的,你最好的选择是保持\n不变,因为如果是这样的话你会期望它在双引号内。

与大多数情况一样,我认为这里的一致性是关键。据我所知,如果您的值跨越多行,包含逗号或包含双引号,则只需要双引号。在我看到的一些实现中,所有值都被转义并且用双引号,因为它使得解析算法更简单(从不存在转义和双引号的问题,并且读取CSV时相反)。

这不是最适合空间优化的解决方案,但是对于您自己的图书馆和将来可能会使用它的其他人来说,读取和写入文件是一件微不足道的事情。