没啥技术含量
主要是在做搞基人工智能大作业的时候,发现队友给的数据集图片顺序是乱着的,所以需要重命名一下
以写工具之名摸鱼还是挺快乐的
实现方式
package main
import (
"fmt"
"io/ioutil"
"os"
"path"
"strings"
)
func main() {
//var dirPath = "E:/研究生课程/高级人工智能/大作业/数据集/猫和狗"
var dirPath = "E:/PycharmProjects/High_Ai_Classification/picture"
renameFile(dirPath)
}
func renameFile(dirPath string) {
// 返回一个文件列表
fileInfos, err := ioutil.ReadDir(dirPath)
if err != nil {
fmt.Println("open dir failed", err)
return
}
for i, f := range fileInfos {
oldFilename := path.Join(dirPath, f.Name())
teS := strings.Split(dirPath, "/")
newFilename := path.Join(dirPath, teS[len(teS)-1]+fmt.Sprint(i)) + ".jpg"
if !f.IsDir() {
err = os.Rename(oldFilename, newFilename)
if err != nil {
fmt.Println("open file failed", err)
return
}
}
// 打印文件地址
fmt.Println(newFilename)
// 如果遇到的是一个文件夹,递归调用函数rename
if f.IsDir() {
renameFile(oldFilename)
}
}
fmt.Println("rename complete")
}
注意点
1. 遇到文件夹的时候需要递归调用函数进行遍历
2. 每一次遇到文件的时候才需要进行重命名
3. 重命名的时候需要写全路径