[go]一个简单的文件重命名工具

没啥技术含量

主要是在做搞基人工智能大作业的时候,发现队友给的数据集图片顺序是乱着的,所以需要重命名一下 :huaji21:

以写工具之名摸鱼还是挺快乐的

实现方式


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. 重命名的时候需要写全路径

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注