node: 批量读、改、写一个文件夹下的所有文件

有时候,我们直接得到的系列数据并非真正想要的,但一个个改又太麻烦,此时,就需要批量处理文件来得到真正想要的数据。
创建一个js文件processData.js,写入以下代码。本文以 json类型的数据为例:

// 1. 引入fs模块
const fs = require('fs'); // 使用 require 方法加载 fs 核心模块

let rawDataDir = 'd:\\a-pro\\data\\rawData'; // 源文件所在文件夹
let newDataDir = 'd:\\a-pro\\data\\targetData'; // 目标文件所在文件夹
// 2. 读取源文件夹下的所有文件,批量处理
if (fs.existsSync(rawDataDir)) { // fs.existsSync(path)以同步的方法检测目录是否存在,返回boolean
    let files = fs.readdirSync(rawDataDir); // fs.readdirSync(path) 方法将返回该路径下所有文件名的数组。
    for (let i = 0; i < files.length; i++) {
        const fileName = files[i];
        // 拼接每个文件完整路径
        let rawFilePath = `${rawDataDir}\\${fileName}`;
        let newFilePath = `${newDataDir}\\${fileName}`;
        // 读取源文件
        let rawFile = fs.readFileSync(rawFilePath, 'utf-8'); // fs.readFileSync(文件路径,编码格式),返回内容
        // 把源数据转为可以处理的格式       
        let rawData = JSON.parse(rawFile); 
        // 处理为最终数据逻辑
        let newData = rawData...
        // 3. 把处理好的数据写入目标文件
        fs.writeFileSync(newFilePath, JSON.stringify(newData)); // fs.writeFileSync(文件路径,目标数据)
    }
} else {
    console.log('not found');
}

写好之后,在源文件夹下写入待处理文件,创建好新文件夹。在processData.js所在目录下运行node processData.js,则在新文件夹下生成同名文件。

你可能感兴趣的:(node: 批量读、改、写一个文件夹下的所有文件)