Go 如何批量修改文件名
工作中遇到了批量修改文件名的情況,為此寫了個(gè)小程序,以供日后方便查看。
用法:
renamedirfiles.exe -d "E:\shared\圖片素材\ps123_20121120_01\背景圖片打包下載" -p "bg%d"
代碼如下:
package main
import (
"flag"
"fmt"
"os"
"path/filepath"
)
func main() {
// 解析命令行參數(shù)
var dir string
flag.StringVar(&dir, "d", "", "directory path")
var pattern string
flag.StringVar(&pattern, "p", "", "name pattern, eg. newname%d")
flag.Parse()
if dir == "" || pattern == "" {
flag.Usage()
return
}
// 遍歷文件夾,獲取文件路徑
paths := make([]string, 0)
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
paths = append(paths, path)
}
return nil
})
// 遍歷文件路徑,修改文件名
for i, path := range paths {
newPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(pattern, i+1)+filepath.Ext(path))
os.Rename(path, newPath)
}
}
補(bǔ)充:使用Golang進(jìn)行大量修改文件名
背景
在我們平時(shí)下載資料時(shí),我們下載的資料的命名經(jīng)常會(huì)帶有某某網(wǎng)站的域名作為廣告,雖為白嫖黨,但是看起來(lái)很不舒服,下面我們使用Go語(yǔ)言進(jìn)行大量修改文件名,將文件名中的廣告域名去除。
代碼
作用:對(duì)該文件夾下的文件進(jìn)行循環(huán)遍歷,將文件名帶有xxx.cn等等字樣的文件后綴名去除
import (
"fmt"
"io/ioutil"
"log"
"os"
"strings"
)
func main() {
path:="C:\\Users\\Desktop\\3_2020最新_Python_(MySQL_SQL_Redis)數(shù)據(jù)庫(kù)詳解"
listFiles(path)
}
func listFiles(dirname string) {
fileInfos, err := ioutil.ReadDir(dirname)
if err!=nil {
log.Fatal(err)
}
for _, f := range fileInfos {
filename := dirname + "\\" + f.Name() //記錄當(dāng)前文件夾下的文件名
//如果文件名包含如下字段,則將其文件名更改
if strings.Contains(f.Name(),"(更多資源訪問(wèn):www.xxx.cn)") {
os.Rename(filename,dirname+"\\"+strings.Replace(f.Name(),"(更多資源訪問(wèn):www.xxx.cn)","",-1))
}
fmt.Println(filename) //打印文件地址
if f.IsDir() { //判斷是否是文件夾 如果是文件夾則繼續(xù)遞歸調(diào)用
listFiles(filename)
}
}
}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
GO 語(yǔ)言運(yùn)行環(huán)境的基礎(chǔ)知識(shí)
這篇文章主要介紹了GO 語(yǔ)言運(yùn)行環(huán)境的基礎(chǔ)知識(shí)的相關(guān)資料,需要的朋友可以參考下2022-09-09
Golang標(biāo)準(zhǔn)庫(kù)time包日常用法小結(jié)
本文主要介紹了Golang標(biāo)準(zhǔn)庫(kù)time包日常用法小結(jié),可以通過(guò)它們來(lái)獲取當(dāng)前時(shí)間、創(chuàng)建指定時(shí)間、解析時(shí)間字符串、控制時(shí)間間隔等操作,感興趣的可以了解一下2023-11-11
golang簡(jiǎn)單獲取上傳文件大小的實(shí)現(xiàn)代碼
這篇文章主要介紹了golang簡(jiǎn)單獲取上傳文件大小的方法,涉及Go語(yǔ)言文件傳輸及文件屬性操作的相關(guān)技巧,需要的朋友可以參考下2016-07-07

