Python处理文件和查漏

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')

 

posted on 2019-03-13 11:53  蛋挞王子  阅读(140)  评论(0编辑  收藏  举报

导航