Node.js读写文件之批量替换图片的实现方法
问题:文件夹A中有大量图片文件,需要用另外一个图片替换掉A中图片,但是命名保持不变。
手工的做法如下:
1)浏览器打开图片->2)另存为->3)目标文件夹->4)找到一个图片->5)替换->6)确定
然后,重复步骤2)和之后的步骤。不小心会漏掉或重复。
这么麻烦,使用node.js来处理改如何呢?代码如下:
var fs=require('fs'), cp=require('child_process'); var url='Moriarty.jpg' var rs=fs.readFileSync(url,{encoding:'hex',flag:'r'}) var write=(e)=>{ fs.writeFileSync(e,rs,{encoding:'hex',flag:'w'}) } var buf_files=cp.execSync('ls 160906/*.jpg') var arr_files=buf_files.toString().trim().split(/s+/) arr_files.forEach(write)
也可以用glob和fs模块来完成:代码如下:
var glob=require('glob'), fs=require('fs') var url='Moriarty.jpg' var rs=fs.readFileSync(url,{encoding:'hex',flag:'r'}) var write=(e)=>{ fs.writeFileSync(e,rs,{encoding:'hex',flag:'w'}) } glob('160906/*.jpg',(err,files)=>{ files.forEach(write) })
效果如下图:
文件原图片:
文件新图片:(图片文件名未变)
以上这篇Node.js读写文件之批量替换图片的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。
Node.js connect ECONNREFUSED错误解决办法
最近在准备Angularjs+node.jsdemo的时候在我的mac开发中遇见此错误,如下:events.js:71throwarguments[1];//Unhandled'error'event^Error:connectECONNREFUSEDaterrnoException(net.js:770:
Node.js + Redis Sorted Set实现任务队列
需求:功能A需要调用第三方API获取数据,而第三方API自身是异步处理方式,在调用后会返回数据与状态{data:"查询结果","status":"正在异步处理中"},这样
Node.js的基本知识简单汇总
Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹。从在github的访问量超过Rails,到去年底Node.jsS创始人RyanDalh加盟Joyent获得企业资助
编辑:一起学习网
标签:图片,文件,给大家,第三方,文件夹