iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python比较两个excel表格的差异
  • 1168
分享到

python比较两个excel表格的差异

表格差异两个 2023-01-31 02:01:48 1168人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

一个同事有两个excel表格要比较差异, 找了一下有相关软件,如: beyond compare, excel compare但这两个似乎都是直接排序再比较的.然后没办法,就用python折腾了一个脚本. 这个脚本先读入要比较的文件中的表.

一个同事有两个excel表格要比较差异, 找了一下有相关软件,如: beyond compare, excel compare

但这两个似乎都是直接排序再比较的.


然后没办法,就用python折腾了一个脚本. 这个脚本先读入要比较的文件中的表. 读的时候 ,如果没有空行就把它和它前面的加一起,直到有空行. 这样比较的话, 不能得到具体那一行有差异, 只有一个大概的位置. 如果表格中间空行越少,越精确. 

#!/usr/bin/Python
#-*- coding:utf-8 -*-

import xlrd, os, sys

if len(sys.argv) != 3:
  print "\n        ./script diff_1.xlsx diff_2.xlsx \n"
  sys.exit()

diff = {}
xls1 = sys.argv[1]
xls2 = sys.argv[2]

if os.path.isfile(xls1) and os.path.isfile(xls2):
  pass
else:
  print "\n        ./script diff_1.xlsx diff_2.xlsx \n"
  sys.exit()

def getcontent(table):  #获取xlsx表内容
  tmp_data = {}
  tmp_table = ''
  all_data = {}

  for j in xrange(table.nrows):
    tmp = table.row_values(j)
    if list(set(tmp)) == ['']:
      tmp_data[tmp_table] = ''
      if tmp_table != '':
        all_data[j] = tmp_table
      tmp_table = ''
    else:
      tmp2 = ""
      for i in tmp:
        try:
          tmp2 = tmp2 + i + ","
        except:
          tmp2 = tmp2 + str(i)+ ","
      tmp_table = tmp_table + tmp2 + "\n"  #把多行的内容放一起
  return (tmp_data, all_data)

def write_file(excel_diff, filename):
  f = open(filename, 'w')
  f.write(excel_diff)
  f.close()

def diff_content(table1,table2): #检查两个表差异
  diff_tmp = []
  for i in table1:
    if i in table2:
      pass
    else:
      diff_tmp.append(i)
  return list(set(diff_tmp))
 
def get_rows(diff, all_data): #获取差异位置
  tmp = []
  for i in diff:
    for j in all_data:
      if all_data[j].strip() == i.strip():
        tmp.append(j)
        break
  return tmp
       

for i in range(0,2):  # 比较几个表
  data1 = xlrd.open_workbook(xls1)
  table1 = data1.sheets()[i]
  data2 = xlrd.open_workbook(xls2)
  table2 = data2.sheets()[i]
  
  tmp1, all1 = getcontent(table1)
  tmp2, all2 = getcontent(table2)

  result = diff_content(tmp1, tmp2) #1 中有 2 没有的具体内容
#  result2= diff_content(tmp2, tmp1)  #2 中有 1 没有的具体内容

  diff[i] = get_rows(result,all1)
  print sorted(diff[i])

#  write_file(sorted(diff[i]), "/tmp/diff.txt")

#  diff[i] = get_rows(result2,all2)
#  print sorted(diff[i])


--结束END--

本文标题: python比较两个excel表格的差异

本文链接: https://www.lsjlt.com/news/187146.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python比较两个excel表格的差异
    一个同事有两个excel表格要比较差异, 找了一下有相关软件,如: beyond compare, excel compare但这两个似乎都是直接排序再比较的.然后没办法,就用python折腾了一个脚本. 这个脚本先读入要比较的文件中的表....
    99+
    2023-01-31
    表格 差异 两个
  • plsql怎么比较两个表的差异
    在PL/SQL中,可以使用以下方法比较两个表的差异: 使用MINUS操作符:可以使用MINUS操作符来比较两个查询结果的差异。例如...
    99+
    2024-04-27
    pgsql
  • oracle怎么比较两个表的差异
    要比较两个Oracle表的差异,可以使用以下方法:1. 使用MINUS运算符:在Oracle中,可以使用MINUS运算符来比较两个表...
    99+
    2023-08-09
    oracle
  • python比较两个文件的差异
    使用python脚本比较两个文件的差异内容并输出到html文档中,可以通过浏览器打开查看。一、脚本使用对比nginx配置文件的差异 python python_diff_file.py -f1 web26.conf -f2 web103.c...
    99+
    2023-01-31
    差异 两个 文件
  • oracle怎么比较两个表数据差异
    在Oracle数据库中,可以使用以下方法比较两个表之间的数据差异: 使用MINUS操作符:可以使用MINUS操作符来比较两个表之间...
    99+
    2024-04-09
    oracle
  • python怎么比较两个文件的差异
    在Python中,可以使用difflib模块来比较两个文件的差异。difflib模块提供了一些用于比较文件、字符串和序列的方法。 下...
    99+
    2023-10-28
    python
  • java中Javers 比较两个类的差异
    目录Javers引入方法:示例遇到的问题:BigDecimalDate相关注解Javers 在开发过程中遇到需求,比较数据库中的原数据与新修改要写入库中的数据。这个实体类是比较复杂的...
    99+
    2024-04-02
  • java比较两个json文件的差异及说明
    目录比较两个json文件的差异推荐java目前比较常用的4个json库一、什么是JSON?二、常用的四种JSON库比较两个json文件的差异 其实是以第一个json文件为准,查看第二...
    99+
    2024-04-02
  • 详解Python如何实现对比两个Excel数据差异
    目录1、引言2、代码实战3、总结1、引言 小丝:鱼哥,还记得上次写的把数据库的查询结果写入到excel这个脚本不。 小鱼:嗯… 可以说不记得吗 小丝:我猜你就记得。 小...
    99+
    2022-12-08
    Python对比Excel数据差异 Python对比数据差异 Python 数据差异
  • oracle怎么对比两个表中数据差异
    要对比两个表中的数据差异,可以使用Oracle中的MINUS操作符或者使用JOIN操作来实现。以下是分别使用这两种方法进行数据差异对...
    99+
    2024-04-30
    oracle
  • oracle怎么比对两张表的差异
    在Oracle中,可以使用MINUS运算符来比对两张表的差异。MINUS运算符用于从第一个查询的结果中减去第二个查询的结果,并返回只...
    99+
    2024-04-09
    oracle
  • Java Stream比较两个List的差异,并取出不同的对象
    可以使用Java8的Stream API来比较两个List的差异,并取出不同的对象。 方式一具体步骤如下:   1. 将两个List转换为Stream类型;   2. 调用Stream的filter方法,将不同的对象过滤出来;   ...
    99+
    2023-09-02
    java list
  • C#高效比较两个DataTable数据差异化的方法实现
    假如有两个DataTable表格分别是dt1,dt2,dt2中有些数据跟dt1一样,现在想找出dt2的数据在dt1中不存在的数据集(换句话也可以说dt2删除已经存在于dt1中的数据)...
    99+
    2024-04-02
  • Java对比两个实体的差异分析
    目录对比两个实体的差异可以用与一下方法比较两个实体类及属性差异工具类(简版)思路对比两个实体的差异 对比2个实体的值是否一致 可以用与一下方法 package com.xx; i...
    99+
    2024-04-02
  • ultraedit怎么对比两个文件的差异
    这篇文章主要介绍“ultraedit怎么对比两个文件的差异”,在日常操作中,相信很多人在ultraedit怎么对比两个文件的差异问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ultraedit怎么对比两个文件...
    99+
    2023-07-01
  • PHP的array_diff()函数:如何比较两个数组并返回差异值
    PHP的array_diff()函数:如何比较两个数组并返回差异值,需要具体代码示例在PHP语言中,数组是最为常见的数据结构之一,常常用于存储一组数据或记录。当需要对比两个数组之间的差异时,PHP提供了一个便捷的函数array_diff()...
    99+
    2023-11-03
    PHP array_diff() 关键词: 比较数组差异
  • PHP中怎么比较两个数组求差集
    PHP中怎么比较两个数组求差集,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、使用array_diff()函数--比较数组的键值<phpheader("Con...
    99+
    2023-06-20
  • sqlserver中怎么比较两个表的列
    今天就跟大家聊聊有关sqlserver中怎么比较两个表的列,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、问题 给了两个各有四五十个列的表,找出他...
    99+
    2024-04-02
  • linux怎么对比两个文件夹的差异
    在Linux中,可以使用diff命令来对比两个文件夹的差异。diff命令会逐行比较两个文件夹中的文件,并显示它们之间的区别。 语法如...
    99+
    2024-04-09
    Linux
  • 如何在Python 查找两个列表之间的差异?
    在处理数据和进行列表操作时,经常需要查找两个列表之间的差异。Python 提供了多种方法来实现这个目标,从简单的循环比较到使用内置函数和库函数等。本文将详细介绍几种常用的方法,帮助您在 Python ...
    99+
    2023-08-31
    python 开发语言 人工智能
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作