如何远程获取csv gzip内容作为csv不想在本地保存csv文件

问题描述

假设我从 ftp 下载了一个 'abc.csv.gz' 文件,现在我需要将该文件内容作为 csv 远程获取,不想保存在本地。

在下面代码的帮助下,我可以获得 csv 文件内容,但在 gunzip 'abc.csv.gz' 的情况下,下面的代码不起作用。

请建议需要更改此代码,或者如果您知道如何将 csv.gz 内容读取为 csv(远程),请提出建议。

我的 csv 工作代码

client.on('message',message => {
  if (message.channel.id !== 'channel id here') return;
  message.react('emoji here')
// if you want to use a custom emoji put it's id there instead.
})

解决方法

您可以使用 zlib

const fs = require('fs'); 
const csv = require('csv-parser');
const zlib = require('zlib');

fs.createReadStream('./abc.csv')
.pipe(zlib.createUnzip())
.pipe(csv())
.on('data',async function(value){

 console.log(value); 
//can get csv file data here

}).on('end',async function(){
 console.log("csv file ended");            
});