python把excel数据对比,python对比excel重复数据

  python把excel数据对比,python对比excel重复数据

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

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

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

  #-*-编码:utf-8-*-

  importxlrd,os,sys

  iflen(sys.argv)!=3:

  打印\ n ./script diff _ 1。xlsxdiff _ 2。xlsx \ n

  sys.exit()

  diff={}

  xls1=sys.argv[1]

  xls2=sys.argv[2]

  ifos.path.isfile(xls1)和os.path.isfile(xls2):

  及格

  否则:

  打印\ n ./script diff _ 1。xlsxdiff _ 2。xlsx \ n

  sys.exit()

  defgetcontent(表):#获取文件格式表内容

  tmp_data={}

  tmp_table=

  all_data={}

  forjinxrange(table.nrows):

  tmp=table.row_values(j)

  iflist(set(tmp))==[]:

  tmp_data[tmp_table]=

  iftmp_table!=:

  所有数据[j]=临时表

  tmp_table=

  否则:

  tmp2=

  foriintmp:

  尝试:

  tmp2=tmp2 i ,

  除了:

  tmp2=tmp2 str(i),

  tmp_table=tmp_table tmp2 \n#把多行的内容放一起

  return(tmp_data,all_data)

  defwrite_file(excel_diff,文件名):

  f=打开(文件名,“w”)

  f.write(excel_diff)

  f.close()

  defdiff_content(表1、表2):#检查两个表差异

  diff_tmp=[]

  表格1:

  ifiintable2:

  及格

  否则:

  diff_tmp.append(i)

  returnlist(set(diff_tmp))

  defget_rows(diff,all_data):#获取差异位置

  tmp=[]

  foriindiff:

  forjinall_data:

  ifall_data[j].strip()==i.strip():

  附加(j)

  破裂

  returntmp

  foriinrange(0,2):#比较几个表

  data1=xlrd.open_workbook(xls1)

  table1=data1.sheets()[i]

  data2=xlrd.open_workbook(xls2)

  table2=data2.sheets()[i]

  tmp1,all1=getcontent(表1)

  tmp2,all2=getcontent(表2)

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

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

  diff[i]=get_rows(结果,全部1)

  打印排序(差异[我])

  #写入文件(已排序(diff[i]),/tmp/diff.txt )

  #diff[i]=get_rows(结果2,全部2)

  #打印排序(差异[我])

  原文:http://阿扁。博客。51 CTO。com/751059/1603947

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: