自动填表脚本

import re,openpyxl,time,os
'''
    获取imei号、初始vol、续航总时间
        利用正则表达式与list知识获取这些数据
    获取excel模板
        获取一个系统定义好的模板
        将对应的数据填入
    保存文件
        修改文件名字时间
'''
class auto_fill(object):
    def __init__(self):
        pass


    ''' 获取文件名 '''
    def get_file_name(self):
        list_file_name = os.listdir()
        middle = int(len(list_file_name)/2)
        list_time = list_file_name[:middle]
        list_ability = list_file_name[middle:]
        return list_time,list_ability


    ''' 获取运行时间 '''
    def get_run_time(self,list_name):
        str_time = []
        for i in list_name:
            with open(i,mode='r',encoding='UTF-8') as file:
                sss = file.readline()
                str = sss[2:-2].replace('小时',':')
                str_time.append(str)
        return str_time


    ''' 获取imei vol数据 '''
    def get_ability(self,list_name):
        re_time_vol = re.compile(r'Voltage: \d\d\d\d')
        re_imei = re.compile(r'IMEI号:\d{15}')
        str_ability_imei = []
        str_ability_vol = []
        for i in list_name:
            with open(i,mode='r',encoding='UTF-8') as file:
                sss1 = file.readline()
                sss2 = file.readline()
                mo_str_vol = re_time_vol.search(sss1)
                if mo_str_vol:
                    sss1 = mo_str_vol.group()[-4:]
                else:
                    sss1 = 'null'
                mo_str_imei = re_imei.search(sss2)
                if mo_str_imei:
                    ss2 = mo_str_imei.group()[-4:]
                else:
                    ss2 = 'null'
                str_ability_vol.append(sss1)
                str_ability_imei.append(ss2)
        return str_ability_imei,str_ability_vol
        
    ''' 插入空行,使列表更利于填写'''
    def change_list(self,list_2):
        for i in range(1,len(list_2)+1):
            if i%5 == 0:
                list_2.insert(i-1, '')
        return list_2
        
        ''' 行列互换 '''
    def row_to_col(self,list1):
            return list(map(list, zip(*list1)))


    ''' 填表 '''
    def read_write_excel(self,list1_t):
        wb = openpyxl.load_workbook(r'E:\excel模板\xxxxx PVT  APK续航测试用例报告_V3.2_timetimetime.xlsx')
        sheet = wb.get_sheet_by_name("详细报告")
        project_path = os.getcwd()
        _, project_name = os.path.split(project_path)
        sheet['A1'] = project_name + sheet['A1'].value
        end_length = len(list1_t) + 2
        for i in range(3,end_length+1):
            for j in range(2,5):
                sheet.cell(row=i, column=j).value = list1_t[i-3][j-2]
        wb.save(project_name + ' APK续航测试用例报告_V3.2_'+time.strftime("%Y%m%d",time.localtime())+'.xlsx')


if __name__ == "__main__":
    address = input('请输入目标文件目录:\n')
    os.chdir(r'%s'%address)
    obj = auto_fill()
    list_time,list_ability = obj.get_file_name()
    str_time = obj.get_run_time(list_time)
    list_imei ,list_vol = obj.get_ability(list_ability)
    list_imei = obj.change_list(list_imei)
    list_vol = obj.change_list(list_vol)
    str_time = obj.change_list(str_time)
    list_all = [list_imei,list_vol,str_time]
    list_all2 = obj.row_to_col(list_all)
    obj.read_write_excel(list_all2)
    print('ok!')

这个程序编写的时间有点长,大部分都是在上班时空余时间中抽空编写完的。总体来说感觉还是不错的,虽然不是脚本啥的。

近段时间持续在刷《流畅的python》,进度有点慢。因为我还在继续配置Android自动化测试的环境,终于快搭建成功了。我组长之前与我说只要下载一个sdk放进去就行了。放进去之后发现出来各种问题,因为eclipse过于老旧,之前也没去学习怎么搭建开发环境。不过还好,终于快搭建完成了。

在刷《流畅的python》中感悟颇多,可惜没时间敲代码练手,只能尝试尽量的多去记住一些东西。不得不说这本书真的是好,谁看谁知道。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值