python進行兩個表格對比的方法
更新時間:2018年06月27日 14:10:01 作者:黑面狐
今天小編就為大家分享一篇python進行兩個表格對比的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
如下所示:
# -*- coding:utf-8 -*-
import xlrd
import sys
import re
import json
dict1={}
dict2={}
mylist=[u'系統(tǒng)運維管理',u'安全管理機構',u'安全管理制度',u'人員安全管理',u'網絡安全',u'物理安全',u'網絡安全',u'主機安全',u'應用安全',u"網絡安全",u"主機安全",u"主機安全",u'系統(tǒng)建設管理']
def check():
data=xlrd.open_workbook('test.xls')
for i in range(0,13):
print u"第%s個表格"%(i+1)
print mylist[i]
print "-"*60
try:
table=data.sheets()[i]
except IndexError,e:
break
nrows=table.nrows
count=1
if i<5:
m=10
else:
m=16
for j in range(m,nrows):
cell_1=table.cell(j,2).value
#print cell_1,
cell_2=table.cell(j,3).value
nu=re.split(r'\)',cell_2)
num=re.split(r'\)',nu[0])
if num is not None:
#print num[0],
pass
else:
print u"沒有標記序號"
try:
if j<nrows:
if table.cell(j,2).value==table.cell(j+1,2).value:
count+=1
else:
print u"檢查項【%s】共有【%s】項"%(table.cell(j,2).value,count)
key=mylist[i]+table.cell(j,2).value
dict1[key]=count
count=1
else:
count+=1
print u"檢查項【%s】共有【%s】項"%(table.cell(j,2).value,count)
key=mylist[i]+table.cell(j,2).value
dict1[key]=count
except IndexError,e:
#count+=1
print u"檢查項【%s】共有【%s】項"%(table.cell(j,2).value,count)
key=mylist[i]+table.cell(j,2).value
dict1[key]=count
print "-"*60
print json.dumps(dict1, encoding='UTF-8', ensure_ascii=False)
print u"完成excel表格讀取-Thanks"
def ASGcheck(filename):
data=xlrd.open_workbook(filename)
table=data.sheets()[0]
print "-"*60
nrows=table.nrows
count=1
for j in range(1,nrows):
cell_1=table.cell(j,2).value
#print cell_1,
cell_2=table.cell(j,3).value
nu=re.split(r'\)',cell_2)
num=re.split(r'\)',nu[0])
if num is not None:
#print num[0],
pass
else:
print u"沒有標記序號"
try:
if j<nrows:
if table.cell(j,3).value==table.cell(j+1,3).value:
count+=1
else:
print u"安全層面【%s】檢查項【%s】共有【%s】項"%(table.cell(j,2).value,table.cell(j,3).value,count)
key=table.cell(j,2).value+table.cell(j,3).value
dict2[key]=count
count=1
else:
count+=1
print u"安全層面【%s】檢查項【%s】共有【%s】項"%(table.cell(j,2).value,table.cell(j,3).value,count)
key=table.cell(j,2).value+table.cell(j,3).value
dict2[key]=count
except IndexError,e:
#count+=1
print u"安全層面【%s】檢查項【%s】共有【%s】項"%(table.cell(j,2).value,table.cell(j,3).value,count)
key=table.cell(j,2).value+table.cell(j,3).value
dict2[key]=count
#print json.dumps(dict2, encoding='UTF-8', ensure_ascii=False)
print "-"*60
def standard():
choiceA=raw_input(u"請輸入A的等級:A2,A3,A4")
choiceS=raw_input(u"請輸入S的等級:S2,S3,S4")
choiceG=raw_input(u"請輸入G的等級:G2,G3,G4")
Aname=str(choiceA)+".xlsx"
Sname=str(choiceS)+".xlsx"
Gname=str(choiceG)+".xlsx"
check()
def compare():
print "*"*60
for key in dict2:
try:
if dict2[key]!=dict1[key]:
print u"存在異常項"
print u"從程序中導出的檢查項【%s】共有%s項"%(key,json.dumps(dict1[key], encoding='UTF-8', ensure_ascii=False))
print u"從分支查詢的檢查項【%s】共有%s項"%(key,json.dumps(dict2[key], encoding='UTF-8', ensure_ascii=False))
else:
pass
except KeyError,e:
print u"分支中的檢查項【%s】共有%s項"%(key,json.dumps(dict2[key], encoding='UTF-8', ensure_ascii=False)),
print u"程序中沒有查詢到該項"
#比較分支結果和程序導出的結果
ASGcheck(Aname)
compare()
ASGcheck(Sname)
compare()
ASGcheck(Gname)
compare()
standard()
#ASGcheck('S3.xlsx')
以上這篇python進行兩個表格對比的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Ranorex通過Python將報告發(fā)送到郵箱的方法
這篇文章主要介紹了Ranorex通過Python將報告發(fā)送到郵箱的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01
win32com操作word之Application&Documents接口學習
這篇文章主要為大家介紹了win32com操作word之Application&Documents接口學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01

