节点 CSV 解析器
Node CSV Parser
我正在使用节点包 'csv',并且我 运行 在该包最明显的用例中遇到了问题,我不确定如何继续。包回购:https://github.com/wdavidw/node-csv
我需要,
1:读入一个csv文件,对每一行进行一次运算。
2:整个csv文件读取完毕后,执行一个动作,将结果写入一个新的csv文件。
我卡在第一部分了。这是将一堆(看似不一致的)示例连接在一起后得到的结果。
var fs = require('fs');
var csv = require('csv');
var transform = require('stream-transform');
var outputMap = {};
var baseStream = fs.createReadStream(__dirname + '/locationTaxonomy.csv');
baseStream
.pipe(csv.parse())
.pipe(csv.transform(function(record){
outputMap[record[2]] = record;
return record;
}));
前面只通过csv文件的前~16行,然后就停止了。
如果我将 baseStream 直接通过管道传输到 process.stdout,则文件将被完整读取。关于如何完成这个看似微不足道的任务有什么想法吗?
转换流处理程序中的 return 语句导致流停止。
删除它允许读取完整的 csv 文件
var fs = require('fs');
var csv = require('csv');
var transform = require('stream-transform');
var outputMap = {};
var baseStream = fs.createReadStream(__dirname + '/locationTaxonomy.csv');
baseStream
.pipe(csv.parse())
.pipe(csv.transform(function(record){
outputMap[record[2]] = record;
// return record; // remove this line
}));
我正在使用节点包 'csv',并且我 运行 在该包最明显的用例中遇到了问题,我不确定如何继续。包回购:https://github.com/wdavidw/node-csv
我需要, 1:读入一个csv文件,对每一行进行一次运算。 2:整个csv文件读取完毕后,执行一个动作,将结果写入一个新的csv文件。
我卡在第一部分了。这是将一堆(看似不一致的)示例连接在一起后得到的结果。
var fs = require('fs');
var csv = require('csv');
var transform = require('stream-transform');
var outputMap = {};
var baseStream = fs.createReadStream(__dirname + '/locationTaxonomy.csv');
baseStream
.pipe(csv.parse())
.pipe(csv.transform(function(record){
outputMap[record[2]] = record;
return record;
}));
前面只通过csv文件的前~16行,然后就停止了。 如果我将 baseStream 直接通过管道传输到 process.stdout,则文件将被完整读取。关于如何完成这个看似微不足道的任务有什么想法吗?
转换流处理程序中的 return 语句导致流停止。 删除它允许读取完整的 csv 文件
var fs = require('fs');
var csv = require('csv');
var transform = require('stream-transform');
var outputMap = {};
var baseStream = fs.createReadStream(__dirname + '/locationTaxonomy.csv');
baseStream
.pipe(csv.parse())
.pipe(csv.transform(function(record){
outputMap[record[2]] = record;
// return record; // remove this line
}));