python进行两个表格对比的方法


Posted in Python onJune 27, 2018

如下所示:

# -*- 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')

以上这篇python进行两个表格对比的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
浅谈Python单向链表的实现
Dec 24 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
python数值基础知识浅析
Nov 19 Python
python连接PostgreSQL过程解析
Feb 09 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 Python
Python快速查找list中相同部分的方法
Jun 27 #Python
Python面向对象类的继承实例详解
Jun 27 #Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 #Python
Python查找第n个子串的技巧分享
Jun 27 #Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 #Python
获取python的list中含有重复值的index方法
Jun 27 #Python
Python 查找list中的某个元素的所有的下标方法
Jun 27 #Python
You might like
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
全面理解闭包机制
2016/07/11 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
Python实例之wxpython中Frame使用方法
2014/06/09 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
Python全排列操作实例分析
2018/07/24 Python
Python3.5文件修改操作实例分析
2019/05/01 Python
ipad上运行python的方法步骤
2019/10/12 Python
pycharm运行scrapy过程图解
2019/11/22 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
新闻记者实习自我鉴定
2013/09/19 职场文书
职专应届生求职信
2013/11/16 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
户外拓展活动方案
2014/02/11 职场文书
初中英语课后反思
2014/04/25 职场文书
拆迁委托协议书
2014/09/15 职场文书
2014年班级工作总结
2014/11/14 职场文书
人事任命通知
2015/04/20 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python