node文件批量重命名实例详解
本文主要介绍了node文件批量重命名的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。
在一个实际需求中,需要对一批文件(如:文本、图片)进行重命名,按照数字编号。正好借此熟悉了一下node的fs文件操作,写了一个批量修改文件名的脚本。
需求
现有以下图片文件
需要批量修改文件名称,变为统一前缀名称并且自增索引,修改后效果
最简单的人力操作就是逐个文件重命名,但本着DRY(Don't repeat yourself)原则,还是写一个node脚本搞定。
研究
node中要进行文件操作需要了解一下fs模块
在fs模块中有同步和异步两种方式
读取文件
//异步 fs.readFile('test.txt', 'utf-8' (err, data) => { if (err) { throw err; } console.log(data); }); //同步 let data = fs.readFileSync('test.txt'); console.log(data);
异步读取文件参数:文件路径,编码方式,回调函数
写入文件
fs.writeFile('test2.txt', 'this is text', { 'flag': 'w' }, err => { if (err) { throw err; } console.log('saved'); });
写入文件参数:目标文件,写入内容,写入形式,回调函数
flag写入方式:
r:读取文件
w:写文件
a:追加
创建目录
fs.mkdir('dir', (err) => { if (err) { throw err; } console.log('make dir success'); });
dir为新建目录名称
读取目录
fs.readdir('dir',(err, files) => { if (err) { throw err; } console.log(files); });
dir为读取目录名称,files为目录下的文件或目录名称数组
获取文件信息
fs.stat('test.txt', (err, stats)=> { console.log(stats.isFile()); //true })
获取文件信息后stats方法:
方法 | 说明 |
---|---|
stats.isFile() | 是否为文件 |
stats.isDirectory() | 是否为目录 |
stats.isBlockDevice() | 是否为块设备 |
stats.isCharacterDevice() | 是否为字符设备 |
stats.isSymbolicLink() | 是否为软链接 |
stats.isFIFO() | 是否为UNIX FIFO命令管道 |
stats.isSocket() | 是否为Socket |
创建读取流
let stream = fs.createReadStream('test.txt');
创建写入流
let stream = fs.createWriteStreamr('test_copy.txt');
开发
开发思路:
读取源目录
判读存放目录是否存在,不存在时新建目录
复制文件
判断复制内容是否为文件
创建读取流
创建写入流
链接管道,写入文件内容
let fs = require('fs'), src = 'src', dist = 'dist', args = process.argv.slice(2), filename = 'image', index = 0; //show help if (args.length === 0 || args[0].match('--help')) { console.log('--help\n \t-src 文件源\n \t-dist 文件目标\n \t-n 文件名\n \t-i 文件名索引\n'); return false; } args.forEach((item, i) => { if (item.match('-src')) { src = args[i + 1]; } else if (item.match('-dist')) { dist = args[i + 1]; } else if (item.match('-n')) { filename = args[i + 1]; } else if (item.match('-i')) { index = args[i + 1]; } }); fs.readdir(src, (err, files) => { if (err) { console.log(err); } else { fs.exists(dist, exist => { if (exist) { copyFile(files, src, dist, filename, index); } else { fs.mkdir(dist, () => { copyFile(files, src, dist, filename, index); }) } }); } }); function copyFile(files, src, dist, filename, index) { files.forEach(n => { let readStream, writeStream, arr = n.split('.'), oldPath = src + '/' + n, newPath = dist + '/' + filename + index + '.' + arr[arr.length - 1]; fs.stat(oldPath, (err, stats) => { if (err) { console.log(err); } else if (stats.isFile()) { readStream = fs.createReadStream(oldPath); writeStream = fs.createWriteStream(newPath); readStream.pipe(writeStream); } }); index++; }) }
效果
总结
node提供了很多模块可以帮助我们完成不同需求的功能开发,使javascript不仅仅局限与浏览器中,尝试自己编写一些脚本有助于对这些模块的理解,同时也能提高办公效率。
相关推荐:
以上是node文件批量重命名实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

许多Windows11用户遇到错误消息“驱动程序无法在此设备上加载(ene.sys)”,该消息阻止驱动程序在系统上加载并被标记为易受攻击。但是,此问题主要由已将PC升级到Windows11的用户报告。此错误与由于系统操作系统更新问题而损坏的驱动程序和文件密切相关。如果您在每次更新后打开Windows11计算机时都遇到此“ene.sys”错误,请继续阅读这篇文章。在这里,您将找到一些在PC上看到此错误时可以使用的故障排除方法。修复1–安装可选更新第1步。使用Windows+R组

如果您的办公室里有很多打印机,打印机列表可能会很长,并且使完成工作变得乏味。更重要的是,多台打印机通常意味着名称相似,这可能会有点令人困惑。您想要的最后一件事是滚动浏览无穷无尽的列表,但最终仍然将打印作业发送到错误的打印机。幸运的是,您可以通过一个简单的重命名技巧来解决所有这些问题,我们将在下面向您展示。如何在Windows11中重命名我的打印机?1.使用“设置”应用点击键并单击设置。Windows单击蓝牙和设备,然后选择打印机和扫描仪。选择要重命名的打印机。单击打印机属性。导航到常规选项卡,键
![Explorer.exe 在系统启动时不启动 [修复]](https://img.php.cn/upload/article/000/887/227/168575230155539.png?x-oss-process=image/resize,m_fill,h_207,w_330)
如今,许多Windows用户开始遇到严重的Windows系统问题。问题是系统加载后Explorer.exe无法启动,用户无法打开文件或文件夹。虽然,Windows用户在某些情况下可以使用命令提示符手动打开Windows资源管理器,并且每次系统重新启动或系统启动后都必须这样做。这可能是有问题的,并且是由于下面提到的以下因素造成的。损坏的系统文件。启用快速启动设置。过时或有问题的显示驱动程序。对系统中的某些服务进行了更改。修改后的注册表文件。请记住以上所有因素,我们提出了一些肯定会对用户有所帮助

Python中的支持向量机(SupportVectorMachine,SVM)是一个强大的有监督学习算法,可以用来解决分类和回归问题。SVM在处理高维度数据和非线性问题的时候表现出色,被广泛地应用于数据挖掘、图像分类、文本分类、生物信息学等领域。在本文中,我们将介绍在Python中使用SVM进行分类的实例。我们将使用scikit-learn库中的SVM模

就像您PC上的任何其他游戏一样,反恐精英:全球攻势也可能在启动时崩溃、冻结或卡在漆黑的屏幕中。Counter-Strike是市场上的低资源fps游戏之一,它甚至可以在土豆PC上运行。虽然CSGO是一款CPU导向的游戏,但系统GPU也扮演着重要的角色。黑屏问题与GPU问题有关。按照这些简单的解决方案来解决问题。修复1–关闭兼容性如果您在Windows8或7的兼容模式下运行游戏,请将其关闭。CSGO与每个版本的Windows(WindowsXP或更高版本)

win10如何批量重命名文件后缀?现在有非常多的用户都在使用Win10系统,而我们在平时使用电脑的过程中,经常会用到很多的快捷键,因为快捷键能让我们的操作更方便,那么要怎么批量重命名文件?下面,小编就为大家介绍下Win10批量重命名文件的操作。Win10批量重命名文件的操作1、全选你想重命名的文件。2、在选中状态的一个文件上点右键,选择重命名。3、一个文件改好新名称后,其他文件依次被序号标记。方法很简单,只不过修改的时候要注意文件排列顺序,以及被修改的样本文件排序位置。序号是从被修改的样本文件开

重命名的快捷键是F2。解析1重命名的快捷键是F2。2想要给某个文件或者文件夹重新命名的话,可以在选中该文件后按下F2,直接修改后按回车键即可。3有时候也可以用鼠标选中文件后点击右键,选择重命名,修改完成后按回车键即可。4快捷键指的是通过键盘上按键的特殊组合或者顺序来快速完成某个指令,可以有效提高工作效率。补充:快捷键是什么1快捷键,又叫热键,指的是通过某些特定的按键、按键顺序或按键组合来完成一个操作。利用快捷键可以代替鼠标做一些工作,可以利用键盘快捷键打开、关闭和导航开始菜单、桌面、菜单、对话框

更改文件类型(扩展名)是一项简单的工作。但是,有时更简单的事情可能会变得棘手,更改文件扩展名就是其中之一。更改文件类型时应格外小心,因为一个简单的错误可能会使文件变砖并使其无法操作。因此,我们讨论了在Windows11、10上更改文件类型的多种方法。如何在Windows11、10上更改文件类型有两种方法可以做到这一点。您可以使用直接GUI方法(在文件资源管理器中),也可以从终端更改文件类型。方式1–使用文件资源管理器方式2–使用CMD终端方式1–直接更改文件类型您可以直接从文件资源管理器中的上下
