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的Django框架中TEMPLATES项的设置教程
May 29 Python
Django中处理出错页面的方法
Jul 15 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
PyQt5实现下载进度条效果
Apr 19 Python
浅析python的优势和不足之处
Nov 20 Python
Python获取网段内ping通IP的方法
Jan 31 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 Python
django 认证类配置实现
Nov 11 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 将excel导入mysql
2009/11/09 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
javascript自然分类法算法实现代码
2013/10/11 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
菊花转动的jquery加载动画效果
2018/08/19 jQuery
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
python在linux中输出带颜色的文字的方法
2014/06/19 Python
python模块之StringIO使用示例
2015/04/08 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
Python urllib2运行过程原理解析
2020/06/04 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
《难忘的泼水节》教学反思
2014/02/27 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
监察建议书格式
2014/05/19 职场文书
品牌服务方案
2014/06/03 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
金秋助学感谢信
2015/01/21 职场文书
财务个人年度总结范文
2015/02/26 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
java executor包参数处理功能 
2022/02/15 Java/Android
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript