有时候,我们直接得到的系列数据并非真正想要的,但一个个改又太麻烦,此时,就需要批量处理文件来得到真正想要的数据。
创建一个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
,则在新文件夹下生成同名文件。