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
接下来就是可怕的刷屏时间了:
更改完成!!!
我们可以看到,名称前面加了这一类的名称加以区分!
阅读更多
相关文章推荐
- Windows下对文件夹下所有图片批量重命名(附C++,python,matlab代码)
- 黑马程序员—这是一个能够键盘录入路径去批量修改指定文件夹下所有指定文件内容的方法
- Linux下快速批量修改文件夹下的图片名称的方法
- Python与C++ 遍历文件夹下的所有图片实现代码
- python程序设计基础5:python文件使用(遍历一个文件夹中所有的图片)
- c++代码批量修改图片名称(重命名)实例及运行结果
- 批量修改指定文件夹下所有后缀名的文件为另外后缀名的java代码
- c++代码批量修改图片名称(重命名)实例及运行结果
- 批量修改一个文件夹下所有的文件后缀
- c++代码批量修改图片名称(重命名)实例及运行结果
- c++代码批量修改图片名称(重命名)实例及运行结果
- MATLAB 如何批量修改文件夹下面的所有图片
- c++代码批量修改图片名称(重命名)实例及运行结果
- java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- c++代码批量修改图片名称(重命名)实例及运行结果
- c++代码批量修改图片名称(重命名)实例及运行结果
- linux下批量修改目录下所有文件夹、文件名称及文件内容
- 遍历文件夹下所有文件及文件夹,批量修改其名称
- c++代码批量修改图片名称(重命名)实例及运行结果
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码