import os,re def change_filename(root): ''' 批量修改excel文件名 ''' for root_,_, fs in os.walk(root): for f in fs: tail = f.upper().rspilt('.',1)[-1] if tail in ['XLS','XLSX']: new_name = os.path.join(root_,os.path.basename(root_).replace('-','_') + tail) #文本處理,將—換成_ old_name = os.path.join(root_,f) os.rename(old_name,new_name) def cherk_lost_file(root): ''' 查詢缺漏的文件,文件名都遵循某格式:例如 20150211103012_440507_龍湖區_區級_2015年決算.xls 或者 20150211103012_440507_龍湖區_區級_2015_決算.xls 每一個地區的文件都要有2015——2017年三份文件纔算整齊,須要查漏缺乏的文件。 ''' log_file = '缺乏的決算報表.log'#注意添加後綴 name_list = os.listdir(root) name_dict = dict() with open(log_file,'a') as f: for file_name in name_list: city_name = re.match(r'\d+_(\d+_\S+.*)_(\d+).*\.xls',file_name).group(1) year = re.match(r'\d+_(\d+_\S+.*)_(\d+).*\.xls',file_name).group(2) if city_name in name_dict.keys(): name_dict[city_name].append(year) else: name_dict[city_name]=[] name_dict[city_name].append(year) for city_name in name_dict.keys(): year_count = name_dict[city_name] if len(year_count) < 3: x = set(year_count) y = set(['2015','2016','2017']) lost = y-x f.write(city_name+'\t'+str(lost)+'\n')