从昨天开始,我试图编写一个可以更改文件名的脚本/程序。除了学习golang,我还开始制作动画,出于某种原因,Illustrator将我制作的每个.png文件命名为“name_working空间1副本.png”和“*副本(数字).png”。我厌倦了手动重命名这些文件,今天我找到了这个代码并修改了它的1行,以摆脱“_working空间1副本”,但只能从那些有数字的文件中删除。这让我留下了2个文件,它们是我的动画的第一帧,它们是 - “name_working空间1.png”;“name_working空间 1 副本.png”。我完全可以通过将这2个空白留空来接受它,但是由于我试图学习golang,我想问我是否可以改进它以替换每个文件名。我本周一开始学习。
import (
"fmt"
"log"
"os"
"path/filepath"
"regexp"
)
func currentDir() {
dir := "D:\\GoLang\\src\\gocourse\\renamefile\\rename"
file, err := os.Open(dir)
if err != nil {
log.Fatalf("failed using this directory %s", err)
}
defer file.Close()
list, err := file.Readdirnames(0)
if err != nil {
log.Fatalf("failed reading directory: %s", err)
}
re := regexp.MustCompile("_working space 1 copy ")
for _, name := range list {
oldName := name
fmt.Println("Old name - ", oldName)
newName := re.ReplaceAllString(oldName, "$1")
fmt.Println("New Name - ", newName)
err := os.Rename(filepath.Join(dir, oldName), filepath.Join(dir, newName))
if err != nil {
log.Printf("error renaming file: %s", err)
continue
}
fmt.Println("File names have been changed")
}
}
func main() {
currentDir()
}
ball_working空间 1.png -->球-1.png;
ball_working空间 1 副本.png --> 球-2.png;
ball_working空间 1 副本 1.png --> 球-3.png;
ball_working空间 1 副本 2.png --> 球-4.png 等。
慕勒3428872
Qyouu
相关分类