我有一个名为“foo.csv”的 csv 文件,其中包含以下数据
A,B,C
asia,west,4
us,east,5
asia,north,4
我在 nodejs 中编写了一个带有流的函数来处理将前两列与
-
合并的 csv
import fs from "fs";
import {parse} from "csv-parse";
import through2 from "through2";
const myTransform = (row) => {
return {
A: row.A + "-" + row.B,
B: row.C
}
}
fs.createReadStream("input.csv", {objectMode: true})
.pipe(parse({columns: true}))
.pipe(through2.obj(function(chunk, encoding, callback) {
this.push(myTransform(chunk))
callback()
}))
.pipe(through2.obj(function(chunk, encoding, callback) {
this.push(Object.values(chunk).join(",")+"\n")
callback()
}))
.pipe(fs.WriteStream("output.csv"));
我在
output.csv
中得到正确的输出如下
asia-west,4
us-east,5
asia-north,4
这显然错过了标题,但我怎样才能修改上面的代码以包含标题?
此外,根据他们的
documentation,我可以删除
throught2
的用法吗,我认为这是可能的,但我不知道怎么做!!