亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Python > 正文

Python3實現配置文件差異對比腳本

2024-09-09 19:02:30
字體:
來源:轉載
供稿:網友

應用場景:配置文件由于升級改動了,我們想看看升級后的配置文件相對于之前的改動了哪些配置項

注意:這個腳本只能檢測的配置文件是鍵值對的形式,就是key=value的形式

我在網上找了好久沒找到這一塊的案例,大部分都是用一些difflib庫做的可視化對比,所以自己嘗試寫了一個

# 該腳本實現兩個配置文件中,新文件相對于舊文件的增刪改的配置項輸出功能# 配置文件必須是key = value的形式import reimport sysdef data2list(file_stream):  """  生成器  :param file_stream:接收打開的文件對象  :return:  """  for line in file_stream:    line = line.strip()    if line == "": #過濾空行      continue    line = line.split(" = ") #每行轉為列表    line2tuple = tuple(line) #列表轉元組    yield line2tuple #每次返回一個元組def line_count(keywords, filename):  """  :param keywords: 對比舊文件,在新文件中改變值的鍵名或新增的鍵  :return: 返回鍵所在的行號  :filename 文件名稱  """  count = 1  with open(filename) as fp:    for line in fp:      line = line.strip()      if re.search(keywords, line):        return count      count += 1#比較新文件中配置型值改變的和新增的配置def compare_config():  """  遍歷新文件中的每個鍵是否在舊文件中存在,如果存在,則比較值是否相同,不相同則打印配置更新,和所在的位置  否則視為在新文件中新增的項  :return:  """  global dict1,dict2  for k2 in dict2.keys():    k1 = list(dict1.keys())    if k2 in k1:      if dict2[k2] != dict1[k2]:        count = line_count(k2, file2)        print("配置項值更新:%s=%s-->%s=%s,位置在第%s行" %(k2, dict1[k2],k2, dict2[k2], count))    else:      count = line_count(k2,file2)      print("新增配置項:%s=%s,位置在第%s行" %(k2, dict2[k2], count))  # 新文件中刪除了哪些項,在舊文件中有,在新文件中沒有的項  set1 = set(dict1.keys())  set2 = set(dict2.keys())  deleteKeys = set1 - set2  for k1 in deleteKeys:    count = line_count(k1, file1)    print("新文件中刪除了以下配置:%s=%s,位置在舊文件中的第%s行" %(k1, dict1[k1],count))if __name__ == '__main__':  try:    file1 = sys.argv[1]    file2 = sys.argv[2]  except:    print("userage:xxx.py oldfile newfile")    sys.exit(1)  fp1 = open(file1)  fp2 = open(file2)  #通過生成器的具有迭代器特點,遍歷來生成一個列表,列表中嵌套了數組,每個數組里面村了每行的數據  gen1 = data2list(fp1)  list1 = []  for i in gen1:    list1.append(i)  dict1 = dict(list1) # dict函數可以把列表中嵌套的元組轉為字典  gen2 = data2list(fp2)  list2 = []  for i in gen2:    list2.append(i)  dict2 = dict(list2)  fp1.close()  fp2.close()  compare_config()

測試結果如下:

準備兩個文件

file1

file2:

運行: config_compare.py file1 file2

輸出比較結果:

配置項值更新:age=19-->age=20,位置在第3行

配置項值更新:gender=man-->gender=female,位置在第4行

配置項值更新:apple=5-->apple=6,位置在第6行

新增配置項:peach=2,位置在第9行

新增配置項:hello=world,位置在第11行

新增配置項:language=english,位置在第12行

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩精品视频| 久精品免费视频| 中文字幕日本精品| 91精品在线国产| 成人av资源在线播放| 亚洲国产成人精品女人久久久| 国外成人在线播放| 91精品国产91久久久久久久久| 欧美极度另类性三渗透| 亚洲色图50p| 欧美小视频在线| 日韩电影视频免费| 51久久精品夜色国产麻豆| 美女视频黄免费的亚洲男人天堂| 亚洲午夜色婷婷在线| 国产精品第一第二| 亚洲一区二区在线播放| 国产一区二区香蕉| 中文字幕日韩视频| 日韩欧美aⅴ综合网站发布| 最近2019中文字幕在线高清| 亚洲精品视频免费在线观看| 欧美在线视频导航| 国产福利精品av综合导导航| 精品成人av一区| 国产欧美精品一区二区三区介绍| 亚洲淫片在线视频| 国产精品一区二区三区在线播放| 中文字幕亚洲激情| 国产精品青青在线观看爽香蕉| 51视频国产精品一区二区| 亚洲欧美中文日韩在线| 日本欧美一二三区| 亚洲精品国产精品自产a区红杏吧| 亚洲热线99精品视频| 久久免费视频网站| 亚洲男人天堂网| 中文字幕亚洲综合久久筱田步美| 91精品国产自产在线观看永久| 久久久久久国产精品三级玉女聊斋| 国内精品久久久久久久久| 成人午夜激情免费视频| 亚洲欧洲美洲在线综合| 久久久精品视频在线观看| 亚洲成人免费在线视频| 久久不射热爱视频精品| 欧美午夜视频一区二区| 最近2019中文字幕第三页视频| 成人黄色午夜影院| 欧美国产乱视频| 色与欲影视天天看综合网| 亚洲男人天堂手机在线| 亚洲天堂网站在线观看视频| 91欧美激情另类亚洲| 国产精品久久久久久久久久久久久久| 欧美午夜精品久久久久久人妖| 欧美成人精品在线观看| 亚洲视频电影图片偷拍一区| 国产福利视频一区二区| 亚洲成人激情视频| 色哟哟网站入口亚洲精品| 日韩精品久久久久久久玫瑰园| 久久国产精品视频| 亚洲人永久免费| 日韩美女在线观看一区| 国产日韩欧美91| 国产精品久久久| 国产精品成人国产乱一区| 欧美日韩精品在线| 欧美日韩在线观看视频| 久久久精品国产网站| 日韩视频一区在线| 久久久久久69| 国产精品美女网站| 日韩欧美aⅴ综合网站发布| 92看片淫黄大片欧美看国产片| 日本精品视频网站| 精品久久久久久久大神国产| 日韩成人在线视频网站| 久久九九精品99国产精品| 欧美日韩亚洲一区二区三区| 欧美亚洲激情视频| 日本一本a高清免费不卡| 精品无人区乱码1区2区3区在线| 欧美精品电影在线| 国产一区二区美女视频| 国产一区二区三区在线看| 日韩精品在线免费观看| 成人性生交xxxxx网站| 欧美劲爆第一页| …久久精品99久久香蕉国产| 日本精品性网站在线观看| 26uuu亚洲国产精品| 在线观看成人黄色| 亚洲最新av在线| 亚洲精品国产电影| 久热99视频在线观看| 亚洲一区二区三区毛片| 亚洲性无码av在线| 国产精品第三页| 国产亚洲精品久久久优势| 国产美女扒开尿口久久久| 91视频国产一区| 神马久久桃色视频| 麻豆一区二区在线观看| 久久久亚洲成人| 国产精品一久久香蕉国产线看观看| 欧美成人精品影院| 欧美有码在线观看| 亚洲人a成www在线影院| 欧美日韩爱爱视频| 日韩av中文在线| 亚州成人av在线| 亚洲欧美三级伦理| 5566日本婷婷色中文字幕97| 全亚洲最色的网站在线观看| 欧美久久久精品| 中文字幕欧美精品日韩中文字幕| 蜜月aⅴ免费一区二区三区| 国产91对白在线播放| 欧美放荡办公室videos4k| 久久久久免费视频| 亚洲国产婷婷香蕉久久久久久| 国内精品在线一区| 国产日韩在线精品av| 国产精品爽爽ⅴa在线观看| 国产欧美中文字幕| 91po在线观看91精品国产性色| 欧美亚洲国产视频小说| 亚洲欧美精品一区二区| 亚洲激情视频在线播放| 91精品国产综合久久香蕉| 最新69国产成人精品视频免费| 久久噜噜噜精品国产亚洲综合| 国产日韩欧美电影在线观看| 欧美激情一区二区三区在线视频观看| 精品偷拍一区二区三区在线看| 国产成人精品免费视频| 亚洲色图13p| 色哟哟网站入口亚洲精品| 97精品国产97久久久久久| 欧洲美女免费图片一区| 亚洲区在线播放| 久久亚洲精品国产亚洲老地址| 中文字幕一区二区精品| 久久亚洲精品中文字幕冲田杏梨| 国产精品日韩在线一区| 成人淫片在线看| 国产精品7m视频| 国产精品一久久香蕉国产线看观看| 亚洲性线免费观看视频成熟| 国产一区二区在线免费视频| 69**夜色精品国产69乱| 国产啪精品视频网站| 久久视频在线观看免费| 国产日韩欧美综合| 97免费视频在线| 九色成人免费视频| 国产一区二区三区视频| zzijzzij亚洲日本成熟少妇| 最近中文字幕2019免费| 亚洲视频在线看| 久久91亚洲精品中文字幕| 日韩成人在线网站|