python实现比较两份Excel数据差异

知识点涉及:

1,读取excel文档数据

2,数据编码格式处理

3,find与rfind函数区别

4,检索关键字符并截取

5,查找关键字符并替换

6,集合,差集

实现代码如下:

import xlrd
l_p=[]
l_q=[]
l_q1=[]
l_p1=[]
#旧的一份文档
filenameold='Vaccine_patient.xlsx'
#新的一份文档
filenamenew='vaccine-1.3.1.xlsx'
date2=xlrd.open_workbook(filenameold)
date1=xlrd.open_workbook(filenamenew)
#根据标签名称找到目标页
sheet1=date2.sheet_by_name('Input')
sheet2=date1.sheet_by_name('Sheet0')
#定义文档中的数据行数
row_num1=sheet1.nrows
row_num2=sheet2.nrows
for i in range (1,row_num1):
    #读取指定位置数据内容,指定编码utf-8
    value1=sheet1.cell_value(i,4).encode('utf-8')
    #定义temp标识,如果包含字符“?”,temp返回结果会大于-1,find函数用法自行百度,注意区别rfind与find的区别
    temp=value1.find(b"?",0)
    if temp > -1:
        #如果包含“?”则截取找到的位置开始,到尾部截掉,解码成str
        tone=value1[0:temp].decode('ascii')
        #查找关键字符“/vaccine/api/”替换为空
        value11=tone.replace('/vaccine/api/','')
        #格式化后的数据放入的l_p1集合中
        l_p1.append(value11)
    else :
        value12=value1.decode('ascii').replace('/vaccine/api/','')
        l_p1.append(value12)
for j in range (0,row_num2):
    value2=sheet2.cell_value(j,4).encode('utf-8')
    temp=value2.find(b"?",0)
    if temp >-1:
        tone2=value2[0:temp].decode('ascii')
        value22=tone2.replace('/api/','')
        l_q1.append(value22)
    else:
        value2=value2.decode('ascii').replace('/api/','')
        l_q1.append(value2)
# rust=list(set(l_p).difference(set(l_q)))
#拿l_q1去和l_p1去比较,得出差集,并打印出来
rust1=list(set(l_q1).difference(set(l_p1)))
for ac in rust1:
    print(ac)

猜你喜欢

转载自xiaojingjing.iteye.com/blog/2357257