node.js - Node CSV 解析器

标签 node.js csv filestreams

我正在使用 Node 包“csv”,我在该包最明显的用例中遇到了一个问题,我不确定如何继续。包 repo :https://github.com/wdavidw/node-csv

我需要, 1:读入一个csv文件,对每一行进行一次运算。 2:整个csv文件读取完毕后,执行一个 Action ,将结果写入一个新的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,文件将被读取完成。关于如何完成这个看似微不足道的任务有什么想法吗?

最佳答案

转换流处理程序中的返回语句导致流停止。 删除它允许读取完整的 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 
	}));

关于node.js - Node CSV 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31574444/

相关文章:

node.js - Powershell 检测何时添加或删除设备

javascript - 对如何编写 OO Javascript 来实现简单的类模式感到困惑

C++ 文件写入包括字符串的内存地址而不是内容

Java从文件中的任意位置打开流

java - java 中的 fork 流

php websocket转发到nodejs

python - NPM - 无法在 Windows 8.1 上安装 css-sprite

python - 我怎样才能改变我的Python代码,以便它可以更有效地将txt文件转换为CSV?

python - 如何将 py 文件中的机器学习算法集成到 django 网站中?

linux - 当定界符也出现在文件中任何位置的字段数据中时,如何替换定界符?