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实现用户登陆邮件通知的方法
Jul 09 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
Python通过字典映射函数实现switch
Nov 06 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
Python开发五子棋小游戏
Apr 28 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 正则表达式小结
2009/08/31 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
python实现的系统实用log类实例
2015/06/30 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
python中property和setter装饰器用法
2019/12/19 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
css3 border-image使用说明
2010/06/23 HTML / CSS
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
给小学生的新年寄语
2014/04/04 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
运动会加油稿20字
2014/11/15 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
教师培训简讯
2015/07/20 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技