首页 web前端 js教程 node文件批量重命名实例详解

node文件批量重命名实例详解

Jan 20, 2018 pm 05:45 PM
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');
登录后复制

开发

开发思路:

  1. 读取源目录

  2. 判读存放目录是否存在,不存在时新建目录

  3. 复制文件

  4. 判断复制内容是否为文件

  5. 创建读取流

  6. 创建写入流

  7. 链接管道,写入文件内容


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批量重命名某个文件夹下所有文件的实现方法介绍

php批量重命名

以上是node文件批量重命名实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

驱动程序无法在此设备上加载 ene.sys 在 Windows 11 中 驱动程序无法在此设备上加载 ene.sys 在 Windows 11 中 May 05, 2023 am 09:13 AM

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

在 Windows 11上快速重命名打印机的 4 种方法 在 Windows 11上快速重命名打印机的 4 种方法 Sep 11, 2023 pm 03:26 PM

如果您的办公室里有很多打印机,打印机列表可能会很长,并且使完成工作变得乏味。更重要的是,多台打印机通常意味着名称相似,这可能会有点令人困惑。您想要的最后一件事是滚动浏览无穷无尽的列表,但最终仍然将打印作业发送到错误的打印机。幸运的是,您可以通过一个简单的重命名技巧来解决所有这些问题,我们将在下面向您展示。如何在Windows11中重命名我的打印机?1.使用“设置”应用点击键并单击设置。Windows单击蓝牙和设备,然后选择打印机和扫描仪。选择要重命名的打印机。单击打印机属性。导航到常规选项卡,键

Explorer.exe 在系统启动时不启动 [修复] Explorer.exe 在系统启动时不启动 [修复] Jun 03, 2023 am 08:31 AM

如今,许多Windows用户开始遇到严重的Windows系统问题。问题是系统加载后Explorer.exe无法启动,用户无法打开文件或文件夹。虽然,Windows用户在某些情况下可以使用命令提示符手动打开Windows资源管理器,并且每次系统重新启动或系统启动后都必须这样做。这可能是有问题的,并且是由于下面提到的以下因素造成的。损坏的系统文件。启用快速启动设置。过时或有问题的显示驱动程序。对系统中的某些服务进行了更改。修改后的注册表文件。请记住以上所有因素,我们提出了一些肯定会对用户有所帮助

Python中的SVM实例 Python中的SVM实例 Jun 11, 2023 pm 08:42 PM

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

CS:GO 在 Windows 10 / 11 中崩溃冻结和黑屏问题 CS:GO 在 Windows 10 / 11 中崩溃冻结和黑屏问题 Apr 30, 2023 pm 06:40 PM

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

win10如何批量重命名文件后缀 win10如何批量重命名文件后缀 Jul 06, 2023 pm 07:37 PM

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

重命名的快捷键是什么 重命名是什么按键 重命名的快捷键是什么 重命名是什么按键 Feb 22, 2024 pm 02:50 PM

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

如何在 Windows 11/10 上更改文件类型 如何在 Windows 11/10 上更改文件类型 Oct 27, 2023 pm 02:13 PM

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

See all articles