4

我正在寻找一些关于处理 csv 和制表符分隔文件的最佳实践。

对于 CSV 文件,如果值包含逗号或双引号,我已经在进行一些格式化,但如果值包含换行符怎么办?我应该保持新行不变并将值用双引号括起来+转义值中的任何双引号吗?

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

4

3 回答 3

2

通常,您\n在利用换行符将包含在" "字符串中的事实时保持不变。这不会产生歧义,但是如果您必须使用普通的文本编辑器查看文件,那真的很难看。

但这是您应该做的,因为除了双引号本身之外,您不会转义 CSV 中字符串内的任何内容。

于 2010-06-21T23:01:55.333 回答
0

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

与大多数事情一样,我认为这里的一致性是关键。据我所知,您的值仅在跨越多行、包含逗号或包含双引号时才需要双引号。在我见过的一些实现中,所有值都被转义和双引号,因为它使解析算法更简单(从来没有转义和双引号的问题,而读取 CSV 则相反)。

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

于 2010-06-21T23:17:59.863 回答
0

对于 TSV,如果您想要无损表示值,“线性 TSV”规范值得考虑: http: //paulfitz.github.io/dataprotocols/linear-tsv/index.html

出于显而易见的原因,大多数此类约定至少遵循以下内容:

   \n for newline,
   \t for tab,
   \r for carriage return,
   \\ for backslash

一些工具\0为 NUL 添加。

于 2019-08-18T23:01:33.400 回答