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 linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
python实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
用python写扫雷游戏实例代码分享
May 27 Python
python创建文件备份的脚本
Sep 11 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
python在html中插入简单的代码并加上时间戳的方法
Oct 16 Python
Python玩转Excel的读写改实例
Feb 22 Python
Python如何使用OS模块调用cmd
Feb 27 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
Python自动创建Excel并获取内容
Sep 16 Python
解决pytorch 数据类型报错的问题
Mar 03 Python
Python爬虫基础讲解之请求
May 13 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/07/17 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php session劫持和防范的方法
2013/11/12 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
php简单分页类实现方法
2015/02/26 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
webpack4的迁移的使用方法
2018/05/25 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
pygame实现打字游戏
2021/02/19 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
文案策划求职信
2014/04/14 职场文书
美容院合作经营协议书
2014/10/10 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
创业计划书之家教中心
2019/09/25 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
使用Apache Camel表达REST服务的方法
2022/06/10 Servers