为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Nodejs将文件夹中的数据作为文件名写入CSV文件

如何使用Nodejs将文件夹中的数据作为文件名写入CSV文件

qq_花开花谢_0 2023-01-06 11:24:50

Anty body确实使用javascript将文件夹中的文件名写入CSV文件

我的文件夹结构是

Data
 +IMG
    +test
       -1.png
       -2.png
    +train
       -3.png
       -4.png

输出 CSV 文件将是这样的

Data/IMG/test/1.png     Data/IMG/train/3.png
Data/IMG/test/2.png     Data/IMG/train/4.png


查看完整描述

1 回答

?
墨色风雨

TA贡献1609条经验 获得超6个赞

您只需要遍历所有文件夹并找到所有文件。您可以参考此答案来执行此操作。


当您找到所有文件的路径时,您可以将这些路径写入 csv 文件的字符串中:


const fs = require('fs');

const path = require('path');


let csvStr = "";


async function loop(startPath) {

    // Our starting point

    try {

        // Get the files as an array

        const files = await fs.promises.readdir(startPath);


        // Loop them all with the new for...of

        for (const file of files) {

            // Get the full paths

            const currentPath = path.join(startPath, file);


            // Stat the file to see if we have a file or dir

            const stat = await fs.promises.stat(currentPath);


            if (stat.isFile()) {

                console.log("'%s' is a file.", currentPath);

                // put the file into csv string

                csvStr += currentPath + ", "

            } else if (stat.isDirectory()) {

                console.log("'%s' is a directory.", currentPath);

                // enter the dictionary and loop

                await loop(currentPath);

            }


        } // End for...of

    } catch (e) {

        // Catch anything bad that happens

        console.error("We've thrown! Whoops!", e);

    }


}


// Make an async function that gets executed immediately

(async () => {

    // start loop from the path where you run node

    await loop("./");


    fs.writeFileSync("your.csv", csvStr);

})();


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 14 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信