深度學習中經常會有批量對圖檔進行重命名,從網上看到的資料整理一下,友善以後檢視。
import os
class BatchRename():
'''
批量重命名檔案夾中的圖檔檔案
'''
def __init__(self):
self.path = 'C:/Users/JingPan/Desktop/data_json' #表示需要命名處理的檔案夾
def rename(self):
filelist = os.listdir(self.path) #擷取檔案路徑
total_num = len(filelist) #擷取檔案長度(個數)
i = 1 #表示檔案的命名是從1開始的
for item in filelist:
if item.endswith('.json'): #初始的圖檔的格式為jpg格式的(或者源檔案是png格式及其他格式,後面的轉換格式就可以調整為自己需要的格式即可)
src = os.path.join(os.path.abspath(self.path), item)
#dst = os.path.join(os.path.abspath(self.path), ''+str(i) + '.jpg')#處理後的格式也為jpg格式的,當然這裡可以改成png格式
dst = os.path.join(os.path.abspath(self.path), '000' + format(str(i), '0>3s') + '.json') #這種情況下的命名格式為000000.jpg形式,可以自主定義想要的格式
try:
os.rename(src, dst)
print ('converting %s to %s ...' % (src, dst))
i = i + 1
except:
continue
print ('total %d to rename & converted %d jpgs' % (total_num, i))
if __name__ == '__main__':
demo = BatchRename()
demo.rename()
效果如下:

format()的用法‘0>3s’ 3是置為數,>是控制字元從後往前占的位置,不夠的位數補0,如format(str(1),'0>3s')輸出結果為001,若format(str(1),'0<3s')輸出結果為100