问题描述
所以我有一堆 csv 文件,这些文件的数据比我需要的要多,我想通过只保留 2015 年之后日期的行来过滤数据。问题是它适用于单个文件,但是当我输入多个文件,它在所有流中写入相同的数据。所以有人可以帮我...
这是我的代码:
const fastcsv = require('fast-csv');
const csv = require('csv-parser');
const fs = require('fs');
const dateList = new Date('2015-01-01')
let files = fs.readdirSync("dir");
for(let file of files){
var list = []
console.log('<inputPath>'+file);
fs.createReadStream('<inputPath>'+file)
.pipe(csv())
.on('data',(row) => {
//filtering data here
var dateRow = new Date(row.Date);
if(dateRow >= dateList) list.push(row);
})
.on('end',() => {
//my writestream,I dont know if I should make some function or do it here itself
const ws = fs.createWriteStream('<outputPath>' + file)
.then(()=>{
console.log(`CSV file successfully processed : ${file}`);
fastcsv
.write(list,{ headers: true })
.pipe(ws);
})
});
}
我知道我应该使用一些 setTimeout 或一些回调函数,但我不知道具体在哪里
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)