内容涉及:检查路径是否存在,文件名长度是否一直,将重复的文件夹重命名
# -*- coding: utf-8 -*- import os import sys import numpy as np import copy from collections import Counter ''' 标注文件夹名:data ,csv文件深度4 原片文件夹名:image 长度:11 待修改索引:3 ''' image = 'image' data = 'data' path = os.getcwd() path_1 = path + '/' + data list_name = os.listdir(path_1) Allfile_name = [] Allfile_name_1 = [] Allfile_name_1_root = [] Allfile_name_jpg = [] Allfile_name_rename = [] Allfile_name_rename_root = [] name_n = [] for n in list_name: path_2 = path_1 + '/' + n list_name_1 = os.listdir(path_2) for k in list_name_1: path_3 = path_2 + '/' + k list_name_2 = os.listdir(path_3) for m in list_name_2: path_4 = path_3 + '/' + m Allfile_name.append(path_4) Allfile_name_1.append(m) Allfile_name_1_root.append(path_2) Allfile_name_rename.append(k) Allfile_name_rename_root.append(path_3) name_n.append(n) #print(Allfile_name) #print(Allfile_name_1) #print(Allfile_name_rename) #print(Allfile_name_rename_root) #raise RuntimeError() for n,m in zip(Allfile_name_1,Allfile_name): if len(n)!=14: raise RuntimeError("file name is too long") if n[6] == 'X': rename = list(n) rename[6] = 'x' rename = ''.join(rename) path_5 = m[:-15] + '/' + rename os.rename(m,path_5) print("标注文件格式 OK!") print("... ...") print("csv type is OK!") #raise RuntimeError() #根据原片jpg文件路径修改jpg_root_rename str_start = 'D:BaiduNetdiskDownload/' str_start = 'D:BaiduNetdiskDownload细胞识别项目原片阳性 0603/' str_start = 'D:yfq_datadata0812datadata2019-8-9/' for n in Allfile_name: n = n.replace(' ', '') # print(n) # print("++++++++++++++++++") binglihao = copy.copy(n[-15-8:-15]) if len(binglihao)>7: binglihao = binglihao[1:8] m = n[-15:] # print("binglihao: ",binglihao) # print(m) # print(m[:-3] + 'JPG') jpg_root_rename = copy.copy(m[:-3]+'JPG') # print("lala",jpg_root_rename) # print("str_start type",type(str_start)) # print("binglihao type",type(binglihao)) # print("aaa",type('Images')) # print("jpg_root_rename type",type(jpg_root_rename)) #new_root = str_start + binglihao + '/Images' + jpg_root_rename new_root = str_start + binglihao + jpg_root_rename print("==============================") print(new_root) # raise RuntimeError() if not os.path.exists(new_root): Allfile_name_jpg.append(jpg_root_rename) if len(Allfile_name_jpg)>0: for n in Allfile_name_jpg: print(n) else: print("所有标注文件均存在对应原片!") print("... ...") print("all cav exits") #print(list_name) #print(name_n) #raise RuntimeError() #将重复的病例号重命名 #print("+++++++++++++++++++++++++++++") #print(len(Allfile_name_rename)) #print(Allfile_name_1_root[1]) #print(Allfile_name_1_root[2]) temp = np.zeros((2,len(Allfile_name_rename)),dtype = 'int') n = 0 for m in Allfile_name_rename: temp[1,n] = m[-7:] n = n + 1 for n in range(0,len(Allfile_name_rename)): temp[0,n] = list(temp[1,:]).count(temp[1,n]) temp_copy = copy.copy(temp) count = len(Allfile_name_rename) count1 = 0 for n in temp[1,:]: count2 = 0 for m in temp[1,:]: temp[0,count1] = list(temp[1,0:count2]).count(temp[1,count1]) if count1 == count2: continue count2 = count2 + 1 count1 = count1 + 1 str_end = [] sign_2 = 0 #print("+++++++++++++++++++++") #print(temp_copy) #print(temp) #raise RuntimeError() for n in range(0,count): if temp_copy[0,n] != 1: sign_2 = 1 if temp[0,n] == 0: str_end = 'A' elif temp[0,n] == 1: str_end = 'B' elif temp[0,n] == 2: str_end = 'C' elif temp[0,n] == 3: str_end = 'D' elif temp[0,n] == 4: str_end = 'E' elif temp[0,n] == 5: str_end = 'F' else: raise RuntimeError("重复病例号过多,请修改程序!!!") dirname_1 = Allfile_name_rename_root[n] print("=================================================") # print(dirname_1) rename_1 = dirname_1 + str_end # print(rename_1) # os.rename(dirname_1, rename_1) if sign_2 == 0: print("没有重复病例") else: print("病例号重命名 OK") print(Allfile_name_rename)