我正在尝试逐行解析CSV文件。 但是,当我输出文件的内容时,它只显示一行?
以下是代码:
fs.readFile('data.csv', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
console.log(data)
var tbl = data.split('\n');
console.log(tbl.length);
})
首先console.log
只输出一行数据,tbl.length
输出1。
为什么只读取一行而不是整个文件?
编辑:奇怪的事情发生了,如果我data.length
我得到580218
,这远远超过我作为输出的那一行?
答案 0 :(得分:0)
想给Jonathan一个回答的机会,这样他就可以获得积分。
这里有几个问题。
仅列出CSV中的一行而不是整个数据。 原来JSON.strigify(字符串)做了伎俩。 额外的行或无效字符可能导致它只输出一行而不是整个文件。
拆分操作的array.length返回1行。后来我注意到整个csv文件是数组的[0]元素。显然与字符串中的新行有关。 所以我做了csv的串行,并改进了我的分割线,它工作。
以下是修改过的代码:
tbl = data.replace(/(\r\n|\n|\r)/gm,"|");
tbl = tbl.split("|")
console.log(tbl.length);
瞧!