时间:2021-05-26
在一个实际需求中,需要对一批文件(如:文本、图片)进行重命名,按照数字编号。正好借此熟悉了一下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');开发
开发思路:
效果
总结
node提供了很多模块可以帮助我们完成不同需求的功能开发,使javascript不仅仅局限与浏览器中,尝试自己编写一些脚本有助于对这些模块的理解,同时也能提高办公效率。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
批量重命名不带括号的方法是: 1、全选所需要重命名的文件,右键点击【重命名】。 2、输入文件名称,如BOKE112,然后回车即可成功对这些文件批量重命名。输
Mac就没有这么简单了,不过今天小编为大家介绍一种方法,告诉大家怎么在iMac上给文件批量重命名。 MAC不像win可以直接给批量的文件重命名,需要借助机器人
Mac就没有这么简单了,不过今天小编为大家介绍一种方法,告诉大家怎么在iMac上给文件批量重命名。 MAC不像win可以直接给批量的文件重命名,需要借助机器人
本文实例为大家分享了python3图片文件批量重命名的具体代码,供大家参考,具体内容如下#!/usr/bin/envpython#coding=utf-8#批量
本文实例讲述了C#实现的文件批量重命名功能。分享给大家供大家参考,具体如下:usingSystem;usingSystem.Collections.Generi