使用Go語言實現(xiàn)批量重命名文件的操作步驟
更新時間:2025年07月24日 08:52:54 作者:程序員愛釣魚
這篇文章主要介紹了使用Go語言批量重命名文件的完整內容,適合初學者實踐如何使用 Go 操作文件系統(tǒng)并批量處理文件名,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
案例目標
實現(xiàn)一個小工具,能夠批量重命名指定目錄下的所有文件,例如統(tǒng)一添加前綴、后綴,或按照順序編號。
應用場景
- • 批量重命名圖片、視頻、文檔等
- • 整理爬蟲下載的文件
- • 按規(guī)則生成項目資源命名
涉及知識點
- • 使用
os.ReadDir()
讀取目錄內容 - • 使用
os.Rename()
修改文件名 - • 使用
filepath.Ext()
獲取文件擴展名 - • 字符串拼接和格式化
示例代碼:為文件添加統(tǒng)一前綴
package main import ( "fmt" "os" "path/filepath" ) func main() { dir := "./testfiles" // 目標文件夾 prefix := "new_" // 要添加的前綴 // 讀取目錄下所有文件 files, err := os.ReadDir(dir) if err != nil { fmt.Println("讀取目錄失敗:", err) return } for _, file := range files { if file.IsDir() { continue // 跳過子目錄 } oldPath := filepath.Join(dir, file.Name()) newName := prefix + file.Name() newPath := filepath.Join(dir, newName) // 重命名文件 err := os.Rename(oldPath, newPath) if err != nil { fmt.Printf("重命名失敗: %s -> %s, 錯誤: %v\n", oldPath, newPath, err) } else { fmt.Printf("重命名成功: %s -> %s\n", oldPath, newPath) } } }
示例目錄結構(執(zhí)行前)
testfiles/ ├── a.jpg ├── b.jpg ├── c.png
執(zhí)行后結果
testfiles/ ├── new_a.jpg ├── new_b.jpg ├── new_c.png
技術說明
函數/模塊 | 用途說明 |
---|---|
os.ReadDir() | 獲取指定路徑下的所有文件和文件夾 |
file.IsDir() | 判斷是否為文件夾 |
filepath.Join() | 拼接路徑,避免平臺兼容問題 |
os.Rename() | 執(zhí)行文件重命名操作 |
拓展用法:添加編號重命名
newName := fmt.Sprintf("img_%03d%s", i+1, filepath.Ext(file.Name()))
執(zhí)行結果:
img_001.jpg img_002.jpg img_003.png
小結
本案例讓你掌握了如何讀取目錄文件并批量重命名,這一技能在數據清洗、媒體資源管理中非常實用。通過靈活控制文件名規(guī)則,你可以輕松構建批處理工具。
到此這篇關于使用Go語言實現(xiàn)批量重命名文件的操作步驟的文章就介紹到這了,更多相關Go批量重命名文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Go語言中如何通過Goroutine實現(xiàn)高并發(fā)
在Go語言中,并發(fā)編程是一個核心且強大的特性,Go語言通過goroutine和channel等機制,使得并發(fā)編程變得更加簡單和直觀,本文給大家介紹了Go語言中如何通過Goroutine快速實現(xiàn)高并發(fā),感興趣的小伙伴跟著小編一起來看看吧2024-10-10利用Go語言快速實現(xiàn)一個極簡任務調度系統(tǒng)
任務調度(Task Scheduling)是很多軟件系統(tǒng)中的重要組成部分,字面上的意思是按照一定要求分配運行一些通常時間較長的腳本或程序。本文將利用Go語言快速實現(xiàn)一個極簡任務調度系統(tǒng),感興趣的可以了解一下2022-10-10golang使用sync.singleflight解決熱點緩存穿透問題
在go的sync包中,有一個singleflight包,里面有一個?singleflight.go文件,代碼加注釋,一共200行出頭,通過?singleflight可以很容易實現(xiàn)緩存和去重的效果,避免重復計算,接下來我們就給大家詳細介紹一下sync.singleflight如何解決熱點緩存穿透問題2023-07-07解決golang sync.Wait()不執(zhí)行的問題
這篇文章主要介紹了解決golang sync.Wait()不執(zhí)行的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12