欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据处理-Python批量修改文件夹下含多个文件夹中的所有图片名称

程序员文章站 2022-05-21 11:58:05
一个文件夹下有多个文件夹内图片的重命名...
个人微信公众号:AI研习图书馆

ID:(Art-Intelligence)
欢迎关注,交流学习,共同进步~

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

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

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

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

上代码:

#!/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)

本文地址:https://blog.csdn.net/weixin_44222014/article/details/106052744