首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用NodeJS解析CSV文件

使用NodeJS解析CSV文件
EN

Stack Overflow用户
提问于 2014-04-15 17:58:48
回答 19查看 322.5K关注 0票数 151

使用nodejs,我想解析一个包含10000条记录的.csv文件,并对每一行执行一些操作。我试过使用http://www.adaltas.com/projects/node-csv。我不能让它在每一行都暂停。这只会读取所有的10000条记录。我需要做以下工作:

  1. 逐行读取csv
  2. 在每行上执行耗时的操作
  3. 转到下一行

有没有人能在这里提出其他的想法呢?

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2014-04-15 21:58:52

您似乎需要使用基于流的库,例如fast-csv,它也包含验证支持。

票数 97
EN

Stack Overflow用户

发布于 2016-05-12 17:16:16

我是这样使用的:

代码语言:javascript
复制
var fs = require('fs'); 
var parse = require('csv-parse');

var csvData=[];
fs.createReadStream(req.file.path)
    .pipe(parse({delimiter: ':'}))
    .on('data', function(csvrow) {
        console.log(csvrow);
        //do something with csvrow
        csvData.push(csvrow);        
    })
    .on('end',function() {
      //do something with csvData
      console.log(csvData);
    });
票数 77
EN

Stack Overflow用户

发布于 2015-05-07 08:09:07

我目前的解决方案使用异步模块来串行执行:

代码语言:javascript
复制
var fs = require('fs');
var parse = require('csv-parse');
var async = require('async');

var inputFile='myfile.csv';

var parser = parse({delimiter: ','}, function (err, data) {
  async.eachSeries(data, function (line, callback) {
    // do something with the line
    doSomething(line).then(function() {
      // when processing finishes invoke the callback to move to the next one
      callback();
    });
  })
});
fs.createReadStream(inputFile).pipe(parser);
票数 58
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23080413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档