代码实现批量重命名图片

首先我们来看Python版本的实现:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time 2021/3/13 10:21
# @Author latin-xiao-mao
# @Version v1.0
# @File BatchRename.py

import os
import random


class BatchRename():
    def __init__(self):
        self.path = 'E:/github-project/18x-images/'     # 表示需要命名处理的文件夹
        print(self.path)

    def rename(self):
        files = os.listdir(self.path)   # 获取文件路径
        random.shuffle(files)
        print(files)
        total_num = len(files)  # 获取文件长度(个数)
        # new_filepath='/home/tanBin/deepLearning/python_learning/caiLearning/crawl_picture/tmp/'
        # if not os.path.exists(new_filepath):
        #     os.makedirs(new_filepath)

        i = 202101  # 图片开始重命名的名称

        for item in files:
            # print item
            if item.endswith('.jpg') or item.endswith('.webp') or item.endswith('.png'):    # 源文件是png格式及其他格式
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(self.path), format(str(i), '0>6s') + '.jpg')     # 处理后的格式也为jpg格式的
                os.rename(src, dst)
                print('converting %s to %s ...' % (src, dst))
                i = i + 1
        print('total %d to rename & converted %d jpgs' % (total_num, i))


if __name__ == '__main__':
    newName = BatchRename()
    newName.rename()

首先我们来看Java版本的实现:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package tool;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 批量修改图片名字
 */
public class BatchRename {

    public static void main(String[] args) {
        BatchRename.rename();
    }

    public static void rename() {
        //输入的目录路径
        String _path = "E:\\photos\\网图";
        //将要实现的转换格式
        String targetSuffix = ".png";
        //目标文件夹路径
        File file = new File(_path);
        //如果目录存在
        if (file.exists() && file.isDirectory()) {
            //获取目标目录下所有的文件数组
            File[] files = file.listFiles();
            //标记该数组的长度
            int len = files.length;
            System.out.println(file + "目录下总共有:" + len + "个文件");
            for (int i = 0; i < len; i++) {
                String name = files[i].getName();
                int index = name.lastIndexOf(".");
                //获取后缀名
                String suffixName = name.substring(index);
                //通过后缀名判断图片
                if (".jpg".equals(suffixName) || ".png".equals(suffixName) || ".webp".equals(suffixName)){
                    String newName = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + (i + 1) + targetSuffix;
                    //重命名
                    File dest = new File(_path + "/" + newName);
                    files[i].renameTo(dest);
                    System.out.println(_path + "\\" + name + " 重命名为:" + dest.getName() + "成功");
                }else System.out.println(_path + "\\" + name + " 文件不是一个图片文件");

            }
        }
    }
}

updatedupdated2021-04-052021-04-05
Load Comments?