首页 > 编程语言 >node实现将大CSV文件拆分小CSV

node实现将大CSV文件拆分小CSV

时间:2024-03-19 22:01:12浏览次数:27  
标签:node 文件 fs const currentLine 拆分 CSV writeStream

const fs = require('fs');

const readline = require('readline');

// 定义输入文件的路径和输出文件的目录

const inputFilePath = '大的CSV文件.csv';

const outputDirectory = 'result';

 // 每个小文件包含的行数

const linesPerFile = 250000;

// 创建输出目录

if (!fs.existsSync(outputDirectory)) {

    fs.mkdirSync(outputDirectory);

}

// 读取大的CSV文件

const readStream = fs.createReadStream(inputFilePath, 'utf-8');

const rl = readline.createInterface({

    input: readStream,

    crlfDelay: Infinity,

});

let fileCounter = 1;

let writeStream = createWriteStream();

/**创建写入流 */

function createWriteStream() {

    const outputFilePath = `${outputDirectory}/小的CSV文件_${fileCounter}.csv`;

    fileCounter++;

    const ws = fs.createWriteStream(outputFilePath);

    // 读取标题行并添加到新文件

    ws.write(' \n');

    return ws;

}

let currentLine = 0;

rl.on('line', (line) => {

    if (currentLine > 0) {

        writeStream.write(line + '\n');

    }

    currentLine++;

    if (currentLine >= linesPerFile) {

        writeStream.end();

        writeStream = createWriteStream();

        currentLine = 0;

    }

});

rl.on('close', () => {

    writeStream.end();

    console.log('拆分完成!');

});

标签:node,文件,fs,const,currentLine,拆分,CSV,writeStream
From: https://blog.csdn.net/u012953777/article/details/136821999

相关文章

  • Node.js毕业设计飞机航班信息查询系统(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当今信息化、智能化的社会背景下,飞机航班信息查询系统成为了人们出行的重要工具。随着航空业的快速发展,航班数量不断增加,航线网络日益复杂,人们对航班信息......
  • Node.js毕业设计飞机订票管理系统(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着航空运输业的迅速发展,飞机已经成为人们日常出行的重要交通工具之一。在现代社会,人们对航班信息、订票服务的需求日益增长,因此,构建一个高效、便捷的飞机......
  • Node.js毕业设计仿小红书app(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的迅猛发展,社交媒体应用已成为人们日常生活中不可或缺的一部分。小红书作为一款集社区分享、电商购物于一体的综合性平台,以其独特的内容推荐......
  • 【NodeJS】GLIBC_2.28 not found CentOS7不兼容Node高版本 npm报错
    CentOS7环境下安装Nvm,在执行nvmuse18.17.0后执行node-v爆出如下错误 bash复制代码node:/lib64/libm.so.6:version`GLIBC_2.27'notfound(requiredbynode)node:/lib64/libc.so.6:version`GLIBC_2.25'notfound(requiredbynode)node:/lib64/libc.so......
  • 比 nvm 更好用的 node 版本管理工具Volta
    什么是VoltaVolta是一种管理JavaScript命令行工具的便捷方式。volta的特点:速度无缝,每个项目的版本切换跨平台支持,包括Windows和所有Unixshell支持多个包管理器稳定的工具安装-无需每次升级都重新安装!可扩展性挂钩用于特定于站点的定制为什么选择Volta?使......
  • 走进node管理工具nvm
    一、安装nvm1.下载nvm 解压后点击exe文件进行安装: 2、点击下一步安装到 D:\NVM下 3、先在D:\NVM下创建nodejs文件夹,然后将路径设置如下: 4、点击next一直点击完成安装;5、找到指定nvm打开后:给该文件添加这两行命令:node_mirror:https://npm.taobao.org/mir......
  • 平面拆分
    引言题目链接:https://www.luogu.com.cn/problem/P8720思路首先可以画一个n=3的图找规律:可以发现划分的平面数有如下的规律:重边只有首次出现的那条会影响结果加入一条没有重边的直线,划分平面数+1新加入的直线与之前加入的直线有a个不同的交点,则划分平面数+a......
  • node 从图片的url获取base64
     在Node.js中,你可以使用HTTP模块来从URL读取图片,并将其转换为base64编码。下面是一个示例代码:1consthttp=require('http');2constfs=require('fs');34constimageUrl='http://example.com/image.jpg';5this.getImgBase64(imag......
  • 云服务器中docker部署nodejs项目
    1、部署项目前准备准备好了一台Linux云服务器或Ubuntu云服务器电脑安装好了xshell、xftp这两款软件已经开发完成了nodejs的项目2、Dockerfile文件的编写 在node项目中新建一个Dockerfile文件FROMdocker.io/node#在镜像容器中创建目录RUNmkdir-p/home/mbill......
  • node 使用 redlock 分布式锁
    'usestrict';constService=require('egg').Service;constmoment=require('moment');constredis=require('redis');constRedlockClass=require('redlock');const{port,host,password}=require(&#......