Node.js讀寫(xiě)文件之批量替換圖片的實(shí)現(xiàn)方法
問(wèn)題:文件夾A中有大量圖片文件,需要用另外一個(gè)圖片替換掉A中圖片,但是命名保持不變。
手工的做法如下:
1)瀏覽器打開(kāi)圖片->2)另存為->3)目標(biāo)文件夾->4)找到一個(gè)圖片->5)替換->6)確定
然后,重復(fù)步驟2)和之后的步驟。不小心會(huì)漏掉或重復(fù)。
這么麻煩,使用node.js來(lái)處理改如何呢?代碼如下:
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模塊來(lái)完成:代碼如下:
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讀寫(xiě)文件之批量替換圖片的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nodejs監(jiān)控事件循環(huán)異常示例詳解
這篇文章主要給大家介紹了關(guān)于Nodejs監(jiān)控事件循環(huán)異常的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Nodejs具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Windows系統(tǒng)下Node.js安裝以及環(huán)境配置的完美教程
相信對(duì)于很多關(guān)注javascript發(fā)展的同學(xué)來(lái)說(shuō),nodejs已經(jīng)不是一個(gè)陌生的詞眼,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下Node.js安裝以及環(huán)境配置的完美教程,需要的朋友可以參考下2022-06-06Node.js操作Firebird數(shù)據(jù)庫(kù)教程
這篇文章主要為大家分享了Node.js操作Firebird數(shù)據(jù)庫(kù)教程,思路清晰便于大家理解,感興趣的小伙伴們可以參考一下2016-03-03node.js中的fs.chmodSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.chmodSync方法使用說(shuō)明,本文介紹了fs.chmodSync方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12Express框架實(shí)現(xiàn)簡(jiǎn)單攔截器功能示例
這篇文章主要介紹了Express框架實(shí)現(xiàn)簡(jiǎn)單攔截器功能,結(jié)合實(shí)例形式分析了express框架攔截器相關(guān)功能與使用方法,需要的朋友可以參考下2023-05-05Node.js學(xué)習(xí)之TCP/IP數(shù)據(jù)通訊(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇Node.js學(xué)習(xí)之TCP/IP數(shù)據(jù)通訊(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Electron調(diào)用外接攝像頭并拍照上傳實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了Electron調(diào)用外接攝像頭并拍照上傳實(shí)例實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02socket.io斷線重連的幾種場(chǎng)景及處理方法
Socket.IO是一個(gè)庫(kù),可用于在瀏覽器和服務(wù)器之間進(jìn)行實(shí)時(shí),雙向和基于事件的通信,下面這篇文章主要給大家介紹了關(guān)于socket.io斷線重連的幾種場(chǎng)景及處理方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03深入學(xué)習(xí)nodejs中的async模塊的使用方法
本篇文章主要介紹了nodejs中的async模塊的使用方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07