gpt4 book ai didi

node.js - 如何使用csv-parse的读写流

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:45 25 4
gpt4 key购买 nike

大家好,我是新来的,我很困惑如何使用读取流和写入流,现在我尝试了这个(我正在使用这个库 https://www.npmjs.com/package/csv-parse )

    fs.createReadStream(path.join(__dirname,"../demofile/Customers.csv"))
.pipe(parse(options))
.on('data', function(csvrow) {
console.log(csvrow);
//do something with csvrow
output.push(csvrow);
})
.on('end',function() {
//do something wiht csvData
console.log(csvData);
});

但我不认为它是正确的读取和写入 csv-parse 流的方法,任何人都可以建议我如何使用上面的代码进行读取和写入。基本上我想读取一个csv文件并将其写入另一个csv文件原因使用读写流是因为我的文件大小约为2gb

最佳答案

以下代码使用流来添加新列。我使用的文件大约是 500MB,最大使用的 RAM 还不到 50MB。请注意,我导入的不是 csv-parse,而是 csv,它实际上是一个“umbrella”模块,其中包括 csv-parsecsv-generatestream-transformcsv-stringify

const fs = require('fs');
const csv = require('csv');
const path = require('path');
const EOL = require('os').EOL;

FILE = path.join(__dirname, 'IN.csv');
NEW_FILE = path.join(__dirname, 'OUT.csv');

const readStream = fs.createReadStream(FILE);
const writeStream = fs.createWriteStream(NEW_FILE);

const parse = csv.parse();

const transform = csv.transform((row, cb) => {

row.push('NEW_COL');
result = row.join(',') + EOL;
cb(null, result);
});

readStream.pipe(parse).pipe(transform).pipe(writeStream);

关于node.js - 如何使用csv-parse的读写流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54034911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com