我有一个大的csv文件,我想读取只是部分读取文件,让我们说前1000行。
我打算使用fast-csv个包或node-csv-parse。
任务不像读取1000行那样简单,因为行可以有多行值。
有人可以帮助我吗?
谢谢!
答案 0 :(得分:2)
以下代码使用node-csv-parse库为我工作。我们的想法是在读取10条记录后使用库的流API和文件流中的unpipe
解析器。
var fs = require('fs');
var csv = require("csv-parse");
var i = 0;
var num = 10;
var stream = fs.createReadStream("test.csv");
var parser = csv();
function done() {
stream.unpipe(parser);
parser.end();
stream.destroy();
}
parser.on('readable', function () {
if (i < num) {
var r = parser.read();
console.log(i, r);
i++;
} else {
done();
}
});
parser.on('error', function() {console.log('Error');}); // TODO: Handle appropriately
parser.on('finish', done);
stream.pipe(parser);