python进行两个表格对比的方法
作者:黑面狐 发布时间:2021-12-15 20:31:57
标签:python,表格
如下所示:
# -*- coding:utf-8 -*-
import xlrd
import sys
import re
import json
dict1={}
dict2={}
mylist=[u'系统运维管理',u'安全管理机构',u'安全管理制度',u'人员安全管理',u'网络安全',u'物理安全',u'网络安全',u'主机安全',u'应用安全',u"网络安全",u"主机安全",u"主机安全",u'系统建设管理']
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')
来源:https://blog.csdn.net/qq1124794084/article/details/52863231


猜你喜欢
- select CONVERT(varchar, getdate(), 120 ) 200
- 本文实例讲述了Python构建XML树结构的方法。分享给大家供大家参考,具体如下:1.构建XML元素#encoding=utf-8from
- Python 是最流行、功能最强大的编程语言之一。由于它是自由开源的,因此每个人都可以使用。大多数 Fedora 系统都已安装了该语言。Py
- 为啥要写这个脚本五一前的准备下班的时候,看到同事为了做数据库的某个表的数据字典,在做一个复杂的人工操作,就是一个字段一个字段的纯手撸,那速度
- 我们调用高德地图的API来计算经纬度#计算地址经纬度import requestsdef geocode(address): paramet
- 一.查询第二个字母是t或者a的雇员的全部信息 select * from employees where fi
- 本文实例为大家分享了Vue自定义日历插件的具体代码,供大家参考,具体内容如下由于网上的插件没有符合项目的需求决定自己实现图示如下:默认选择今
- 步骤查看历史记录# 查看历史记录git log -3实例Simba@SIMBA MINGW64 /t/IDE/IDEA/Workspace-
- 今天在用python3+ImageFont输出中文时,结果显示乱码# coding:utf-8from PIL import Image,
- 本文实例讲述了Python使用爬虫抓取美女图片并保存到本地的方法。分享给大家供大家参考,具体如下:图片资源来自于www.qiubaichen
- Python FastAPI请求参数传递FastAPI多参数传递类型FastAPI通过模板来匹配URL中的参数列表,大致有如下三类方式传递参
- 在 MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却
- 以下针对Ubuntu系统,Windows系统没有测试过。Ubuntu中默认就安装有Python 2.x和Python 3.x,默认情况下py
- 在Twinsen Liang的博客上看到一篇名为语义化单单的限定在html么?的文章,文中主要是提及了CSS的命名规则,仔细阅读后,我认为这
- 本文实例讲述了JavaScript求一组数的最小公倍数和最大公约数常用算法。分享给大家供大家参考,具体如下:方法来自求多个数最小公倍数的一种
- 一:文字加粗 倾斜的代码文字加粗的代码是: <b>你好</b>文字倾斜的代码是: <i>你好!</
- 每当这种情况发生的时候,我总会心里默念道:杯具啊,这辈子也装不完了。因为SQL Server的安装还是比较复杂的,要先安装.Net、Wind
- 前言Python可以操作Excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的)python中使用xlwt操作ex
- sort 标准库Sort 标准库提供了对基本数据类型的切片和自定义类型的切片进行排序的函数,常用函数如下表所示:函数描述Ints(x []i
- 一、提前准备为了大家学习方便,我在这里面建立两张表并为其添加一些数据。一张水果表,一张供应商表。水果表 fruits表f_idf_namef