自动填表脚本
import re,openpyxl,time,os
'''獲取imei號(hào)、初始vol、續(xù)航總時(shí)間利用正則表達(dá)式與list知識(shí)獲取這些數(shù)據(jù)獲取excel模板獲取一個(gè)系統(tǒng)定義好的模板將對(duì)應(yīng)的數(shù)據(jù)填入保存文件修改文件名字時(shí)間
'''
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''' 獲取運(yùn)行時(shí)間 '''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('小時(shí)',':')str_time.append(str)return str_time''' 獲取imei vol數(shù)據(jù) '''def get_ability(self,list_name):re_time_vol = re.compile(r'Voltage: \d\d\d\d')re_imei = re.compile(r'IMEI號(hào):\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''' 插入空行,使列表更利于填寫(xiě)'''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續(xù)航測(cè)試用例報(bào)告_V3.2_timetimetime.xlsx')sheet = wb.get_sheet_by_name("詳細(xì)報(bào)告")project_path = os.getcwd()_, project_name = os.path.split(project_path)sheet['A1'] = project_name + sheet['A1'].valueend_length = len(list1_t) + 2for 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續(xù)航測(cè)試用例報(bào)告_V3.2_'+time.strftime("%Y%m%d",time.localtime())+'.xlsx')if __name__ == "__main__":address = input('請(qǐng)輸入目標(biāo)文件目錄:\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!')
這個(gè)程序編寫(xiě)的時(shí)間有點(diǎn)長(zhǎng),大部分都是在上班時(shí)空余時(shí)間中抽空編寫(xiě)完的。總體來(lái)說(shuō)感覺(jué)還是不錯(cuò)的,雖然不是腳本啥的。
近段時(shí)間持續(xù)在刷《流暢的python》,進(jìn)度有點(diǎn)慢。因?yàn)槲疫€在繼續(xù)配置Android自動(dòng)化測(cè)試的環(huán)境,終于快搭建成功了。我組長(zhǎng)之前與我說(shuō)只要下載一個(gè)sdk放進(jìn)去就行了。放進(jìn)去之后發(fā)現(xiàn)出來(lái)各種問(wèn)題,因?yàn)閑clipse過(guò)于老舊,之前也沒(méi)去學(xué)習(xí)怎么搭建開(kāi)發(fā)環(huán)境。不過(guò)還好,終于快搭建完成了。
在刷《流暢的python》中感悟頗多,可惜沒(méi)時(shí)間敲代碼練手,只能?chē)L試盡量的多去記住一些東西。不得不說(shuō)這本書(shū)真的是好,誰(shuí)看誰(shuí)知道。
總結(jié)
- 上一篇: 假期项目:智能家居之环境监测系统day1
- 下一篇: 模拟器下载