文件(夹)批量更名、图像批量resize

转自https://blog.csdn.net/lilai619/article/details/50856298

起因

深度学习,需要大量的测试样本和训练样本,从各处“搜刮”来的数据整合起来,容易遇到:图片名(文件夹)长度不一、中英文数字夹杂、图片尺寸不同等问题,导入深度模型无法正常载入图片。

例如:

文件夹包含中文、无序

这里写图片描述

图片包含中文

这里写图片描述

正题

废话不多说,上代码。。。


#!/usr/bin/env python
# -*- coding:utf-8 -*-

__author__ = "li"

"""
--------------------------------------
#   程序:文件(夹)批量更名、图像批量resize
#   版本:0.1
#   作者:li
#   日期:2016-03-11
#   语言:Python 2.7
--------------------------------------
"""

import os
from PIL import Image
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
from matplotlib.font_manager import FontProperties

font = FontProperties(fname=r'c:\windows\fonts\SimSun.ttc', size=14)

# 获取当前路径
path_abs = os.getcwd()
print u'*****************开始文件名更名操作*****************'
print path_abs
# 遍历当前路径下的文件以及文件目录
for root, dir_name, file_name in os.walk(path_abs):
    # 统计文件夹个数
    num_dir = len(dir_name)
    for idx, item in enumerate(dir_name):
        print u'第', idx, u'个文件正在更名......'
        item_new = 'test_' + '0' * (1 - idx / 10) + str(idx)
        # 原文件路径
        path_dir_old = path_abs + '\\' + item
        # print u'原文件路径:', path_dir_old
        # 新文件路径
        path_dir_new = path_abs + '\\' + item_new
        # print u'新文件路径:', path_dir_new
        # 更名操作
        os.renames(path_dir_old, path_dir_new)
print u'*****************进度报告:文件名更名完毕!*****************'

print u'*****************进度报告:开始图片名更名*******************'
for root1, dir_name1, file_name1 in os.walk(path_abs):
    num1_dir = len(dir_name1)
    for idx1, item1 in enumerate(dir_name1):
        path_dir1 = path_abs + '\\' + item1
        for root2, dir_name2, file_name2 in os.walk(path_dir1):
            for idx2, item2 in enumerate(file_name2):
                # 原路径 + 图片名
                item2_old = path_dir1 + '\\' + item2
                # 新路径 + 图片名(强制转换成jpg格式,数字6制定图片名长度以及0的填充个数)
                item_new2 = 'idx_'+ '0' * (5 - len(str(idx2))) + str(idx2)
                item2_new = path_dir1 + '\\' + item_new2 + '.jpg'
                # 更名
                os.rename(item2_old, item2_new)
                # resize 成指定尺寸大小
                img = Image.open(item2_new)
                img_new = img.resize((220, 220))
                # save 保存
                img_new.save(item2_new)

print u'*****************进度报告:图片更名操作完毕!******************'

  • 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
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

效果

文件夹更名效果

这里写图片描述

图片resize+更名效果

这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38300566/article/details/80585727