個人微信公衆號: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)