您的位置:首页 > 编程语言 > Python开发

python批量修改一个文件夹下含多个文件夹中的所有图片名称(代码)

2018-08-22 16:57 1086 查看

有时候我们想要训练时,拿到的样本,名称是很乱的,又或者我们想把多个文件夹的图片放到一个总的文件夹,但是各个文件夹内图片的名称都是一样的命名方法命名的。

网上能找到的,大多是只对一个文件夹下所有图片进行重命名的代码。

这边实现的是,一个文件夹下有多个文件夹内图片的重命名。

 

例如,这个数据集place100,里面有100个文件夹,代表100个类,然后每个类的文件夹打开又有1500张图:

我们可以看出,airplane_cabin 和 airport_terminal 里面图片的命名是一样的。

 

 

 

所以,我们希望可以在现有的图片名称前,加上这一类的名称,来区分不同类,这样把全部图片拷贝到一个文件夹时就不会出现重复命名的问题了。

上代码:

[code]#!/usr/bin/python
# -*- coding:utf-8 -*-

import os

outer_path = '/home/lincanran/cls_exp/place100'
folderlist = os.listdir(outer_path)          #列举文件夹

for folder in folderlist:
inner_path = os.path.join(outer_path, folder)
total_num_folder = len(folderlist)       #文件夹的总数
print 'total have %d folders' % (total_num_folder)   #打印文件夹的总数

filelist = os.listdir(inner_path)        #列举图片
i = 0
for item in filelist:
total_num_file = len(filelist)       #单个文件夹内图片的总数
if item.endswith('.jpg'):
src = os.path.join(os.path.abspath(inner_path), item)           #原图的地址
dst = os.path.join(os.path.abspath(inner_path), str(folder) + '_' + str(i) + '.jpg')        #新图的地址(这里可以把str(folder) + '_' + str(i) + '.jpg'改成你想改的名称)
try:
os.rename(src, dst)
print 'converting %s to %s ...' % (src, dst)
i += 1
except:
continue
print 'total %d to rename & converted %d jpgs' % (total_num_file, i)

 

具体操作:

1.新建一个  rename.py  文件,然后把上面的代码复制进来,根据需要修改你要改的名称,然后保存。

2.在终端输入:

[code]python rename.py

接下来就是可怕的刷屏时间了:

 

更改完成!!!

我们可以看到,名称前面加了这一类的名称加以区分!

 

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐