如何逐行读取csv文件,修改每一行,将结果写入另一个文件

时间:2019-06-12 17:19:44

标签: node.js event-stream

我最近将事件流库用于nodejs来解析巨大的csv文件,并将结果保存到数据库中。 我该如何解决不仅读取文件,还要修改每一行,并将结果写入新文件的任务? 它是直通和映射方法的组合,还是双工?我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果使用事件流进行读取,则可以使用split()方法逐行处理csv。然后更改并将行写入新的可写流。

var fs = require('fs');
var es = require('event-stream');

const newCsv = fs.createWriteStream('new.csv');

fs.createReadStream('old.csv')
  .pipe(es.split())
  .pipe(
    es.mapSync(function(line) {
    // modify line way you want
      newCsv.write(line);
    }))

newCsv.end();