python对比两个excel文件是否相同,python比较两个excel文件
对于经常使用超过作数据处理的任务,时常需要了解某个超过文件相对于之前作了哪些修改。
下边提供我最近编写的一个差速器两个超过文件的计算机编程语言脚本,用到了读操作库。
#!/usr/端庄的裙子/python#coding=gbk#用法:来自读操作的python diff _ excel。py[文件1][文件2]导入打开_工作簿导入系统#输出整个超过文件的内容def print _ workbook(WB):用于WB中的s。sheets():print Sheet:,s . name for r in range(s . nrows):strRow= for c in s . ROW(r):strRow=( \ t c . value)print ROW[ str(r)]:,strRow#把一行转化为一个字符串def row _ to _ str(row):strRow= for c in row:strRow=( \ t c . value)return strRow;#打印差速器结果报表def print _ report(report):for o in report:if is instance(o,list):for I in o:print \ t I else:print o # diff两个Sheetdef diff_sheet(sheet1,sheet 2):nr1=sheet 1。nrows nr2=第2页。nrows NR=max(nr1,nr2)report=[]for r in range(NR):row 1=None;第2行=无;如果rnr 1:第1行=第1页。如果rnr 2:第2行=第2页,则为第(r)行。row(r)diff=0;# 0:相等,1:不相等,2:第2行多,3:第2行少如果row1==无且第二排!=无:差异=2报告。append( ROW[ str(r 1)]: ROW _ to _ str(ROW 2))if ROW 1==None and ROW 2==None:diff=0 if ROW 1!=无且第2行==无:差异=3报告。append(-ROW[ str(r 1)]: ROW _ to _ str(ROW 1))if ROW 1!=无和第二排!=None:# diff the two rows reportRow=diff _ ROW(ROW 1,ROW 2)if len(reportRow)0:report。append( # ROW[ str(r 1)]1: ROW _ to _ str(ROW 1))报表。append( ROW[ str(r 1))2: ROW _ to _ str(ROW 2))报表。追加(报告行)返回报告;#差异两行def diff_row(row1,row 2):nc1=len(row 1)nc2=len(row 2)NC=max(nc1,nc2)report=[]for c in range(NC):ce1=None;ce2=无;if cnc1:ce1=第1行[c]if cnc2:ce2=第2行[c]diff=0;# 0:相等,1:不相等,2:第2行多,3:第2行少如果ce1==无且ce2!=无:差异=2报告。append( CELL[ str(C1): ce2。value)如果ce1==None且ce2==None:diff=0如果ce1!=无且ce2==无:差异=3报告。append(-CELL[ str(c 1): ce1。值)如果ce1!=无和ce2!=无:如果ce1。值==ce2。值:diff=0否则:diff=1报告。append( # CELL[ str(C1)]1: ce1。值)报告。append( # CELL[ str(C1)]2: ce2。value)返回报告if _ _ name _ _= _ _ main _ _ :if len(sys .argv)3:exit()file 1=sys。argv[1]file 2=sys。argv[2]wb1=open _ workbook(文件1)wb2=两个文件的第一个工作表报表=diff _ sheet(wb1。工作表索引(0),wb2。sheet _ by _ index(0))打印文件1 \ n 文件2 \ n # # # # # # # # # # # # # # # # # # # #打印差速器结果打印_报告(报表)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。