我正在尝试编写一个简单的节点程序,该程序读取 csv 文件、提取列(比如第二列)并将其写入另一个 CSV 文件。我正在将内容读取到数组中,然后将该数组写入文件。
每一步的阶段和数据
输入文件
123,456,789,abc
def,ghi,232,jkl
array
['456','ghi']
输出文件
4,5,6
g,h,i
需要输出
456
ghi
我只是缺少配置还是我写入数据的方式错误?我在 END 块内写入文件的代码块不正确吗?
这是我的代码
var fast_csv = require('fast-csv');
var tempArray=new Array();
console.log("START");
fast_csv.fromPath("inputfile.txt").on("data", function(data){
tempArray.push(data[1]);
})
.on("end", function(){
tempArray.sort();
console.log(tempArray);
fast_csv.writeToPath("outputfile.csv", tempArray)
.on("finish", function(){
console.log("END");
});
});
它将数组中的每个元素视为一个数组,因此“456”被视为包含元素 4、5、6 的数组。
我所做的一个奇怪的解决方法是循环遍历数组并将每个元素放入其自己的数组中,因此它将是:
var newArray = [];
for( var i = 0; i < tempArray.length; i++){
var arr = [];
arr.push(tempArray[i]);
newArray.push(arr);
}
然后写入“newArray”。
但是,如果您逐行编写,则可以将每个元素放在括号内,例如:
var fast_csv = fastcsv.createWriteStream();
var writeStream = fs.createWriteStream("outputfile.csv");
fast_csv.pipe(writeStream);
for(var i = 0; i < tempArray.length; i++){
fast_csv.write( [ tempArray[i] ] ); //each element inside bracket
}
fast_csv.end();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)