龙空技术网

不同环境相同配置项的内容如何diff差异?

Candy.W 127

前言:

目前看官们对“table td width”大概比较讲究,姐妹们都想要剖析一些“table td width”的相关资讯。那么小编在网摘上搜集了一些关于“table td width””的相关文章,希望各位老铁们能喜欢,兄弟们快快来了解一下吧!

Step1:分享背景

在工作中,我们用到的环境经常会有很多套,由于不同的环境使用的配置是不一样的,那么怎么能够对比所有不同环境的相同配置项各是什么内容呢?

Step2:Python代码实现

import osfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimport smtplib#指定java工程目录dirpath="D:\java_project\entitystorage"emails='loadkernel@126.com'alldict={}#获取所有文件里的key and valuedef get_all_property(dirpath,env):    for root, dirs, files in os.walk(dirpath, topdown=False):        for fn in files:            fullpathfile=os.path.join(root, fn)            if(env in fullpathfile and "properties" in fullpathfile):                with open(fullpathfile,'r',encoding='utf-8') as ff:                    print(ff)                    for line in ff.readlines():                        print(fullpathfile,line)                        if(not line.startswith("#")):                            line=line.replace("\n","")                            if(len(line)>1):                                if("=" in line):                                    kv=line.split("=")                                    get_all_properties(env, kv[0], kv[1])                                else:                                    print("the "+str(fullpathfile) +"has an error!!!")#将获取的key and value 内容放入字典def get_all_properties(env,k,v):    if(env not in alldict.keys()):        alldict[env] = {}        alldict[env][k]=v    else:        alldict[env][k]=v#在页面上展示不同环境的key 对应的值def show_data_to_page(betadict,stagingdict,uatdict,proddict):    count=0    str1 = '<!DOCTYPE html> <html> <meta charset="utf-8"> <head> <style type="text/css"> table.gridtable {font-family: verdana,arial,sans-serif; font-size:11px; color:#333333; border-width: 1px; border-color: #666666; border-collapse: collapse; } table.gridtable th {border-width: 1px; padding: 8px; border-style: solid; border-color: #666666; background-color: #dedede; } table.gridtable td {border-width: 1px; padding: 8px; border-style: solid; border-color: #666666; background-color: #ffffff; } </style> </head>';    str1 = str1 + '<body>'    str1 = str1 + ' <table class="gridtable">'    str1 = str1 + ' <tr> <th>key</th> <th>beta</th> <th>staging</th> <th>uat</th> <th>prod</th> <tr/> '    sorted_prod=sorted(proddict['prod'].items(), key=lambda d: d[0])    for pk,pv in sorted_prod:        count+=1        print(count,pk,pv)        if(pk in betadict['betamagic'].keys()):            try:                if(len(betadict['betamagic'][pk])>0):                    bv=betadict['betamagic'][pk]                    if(str(pv).lower()==str(bv).lower()):                        bv="<p style='color:blue'><B>"+bv+"</B>"                else:                    bv = "None"            except:                bv="None"        else:            bv="None"        if (pk in stagingdict['staging'].keys()):            try:                if (len(stagingdict['staging'][pk]) > 0):                    sv = stagingdict['staging'][pk]                    if (str(pv).lower() == str(sv).lower()):                        sv = "<p style='color:blue'><B>" + sv + "</B>"                else:                    sv = "None"            except:                sv = "None"        else:            sv = "None"        if (pk in uatdict['uat'].keys()):            try:                if (len(uatdict['uat'][pk]) > 0):                    uv = uatdict['uat'][pk]                    if (str(pv).lower() == str(uv).lower()):                        uv = "<p style='color:blue'><B>" + uv + "</B>"                else:                    uv = "None"            except:                uv = "None"        else:            uv = "None"        str1+='<tr> <td>' + str(count)+" . "+ pk + '</td> <td>' + bv + '</td> <td>' + sv + '</td> <td>' + uv + '</td> <td>' + pv + '</td> <tr/>'    str1 = str1 + ' </table>'    str1 = str1 + '</body> </html>'    str1=str1.replace("None","<p style='color:green'><B>None</B>")    send_mail(emails, 'diff the properties', str1)def send_mail(receivers, title, content):    sender = 'qa.notice@126.com'    mailto = receivers.split(",")    try:        msg = MIMEMultipart()        msg['Subject'] = title        to_user = ",".join(mailto)        print("receivers...", to_user)        msg['to'] = to_user        msg['From'] = sender        body = MIMEText(content, _subtype='html', _charset='utf-8')        msg.attach(body)        smtp = smtplib.SMTP('smtp.officexxx.com', 587)        smtp.starttls()        print("sending")        smtp.login("qa.notice@126.com", "testkyjrsdxz")        smtp.sendmail(sender, mailto, msg.as_string())        print("send")        smtp.quit()    except smtplib.SMTPException as e:        print(e)if __name__ == '__main__':    get_all_property(dirpath,"betamagic")    betadict=alldict    print(betadict)    alldict={}    print("***")    get_all_property(dirpath,"staging")    stagingdict = alldict    print(stagingdict)    alldict = {}    get_all_property(dirpath,"uat")    uatdict = alldict    print(uatdict)    alldict = {}    get_all_property(dirpath,"prod")    proddict = alldict    print(proddict)    show_data_to_page(betadict,stagingdict,uatdict,proddict)

Step3:邮件效果图展示

备注说明:

1. 图中红色表示live环境有对应项,但是其他环境没有的。

2. 图中蓝色表示非live环境与live配置相同的。

标签: #table td width