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

 

转载于:https://www.cnblogs.com/10sxluo/p/10522186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值