- import os
- from collections import Counter #引入Counter
-
- dbtype_list = os.listdir("F:\")
-
- for dbtype in dbtype_list[::]:
- if os.path.isfile(os.path.join("F:\",dbtype)):
- dbtype_list.remove(dbtype)
-
- for curDir in dbtype_list:
- try:
- files = os.listdir("F:\" + curDir)
- t = os.listdir("F:\" + curDir)
- except:
- continue
-
- print("下面开始搜索:",curDir,"\n",file = open(r'result.txt','a'))
- for i in range(len(t)):
- a = t[i].split('-')
- files[i] = a[0]
- if(len(a) > 1):
- for j in a[1:]:
- files.append(j)
-
- def is_chinese(uchar):
- if uchar >= '\u4e00' and uchar <= '\u9fa5':
- return True
- else:
- return False
-
- def reserve_chinese(content):
- content_str = ''
- for i in content:
- if is_chinese(i):
- content_str += i
- return content_str
-
- for i in range(len(files)):
- files[i] = reserve_chinese(files[i])
- def rename_duplicate(list, print_result=False):
- new_list=[v + str(list[:i].count(v) + 1) if list.count(v) > 1 else v for i, v in enumerate(list)]
- if print_result:
- print("Renamed list:",new_list)
- return new_list
-
- def clean_duplicate(list,print_result=False):
- no_duplicate_list=[]
- duplicate_list=[]
- duplicate_dict={}
- for ele in list:
- duplicate_list.append(ele)
- if ele not in no_duplicate_list:
- no_duplicate_list.append(ele)
- else:
- ind=len(duplicate_list)-1
- duplicate_dict[ele]=duplicate_dict.get(ele,[list.index(ele)])
- duplicate_dict[ele].append(ind)
- if print_result:
- print('Origin list:',duplicate_list,'\nNew list:',no_duplicate_list,'\nDuplicate dict:',duplicate_dict,"\n",file = open(r'result.txt','a'))
- return duplicate_list,no_duplicate_list,duplicate_dict
-
-
- origin_list=files
- _,no_duplicate_list,duplicate_dict=clean_duplicate(origin_list,True)
- renamed_list=rename_duplicate(origin_list,True)
复制代码
|