Python比对指定目录下的Excel数据(附源码)

本文介绍了一个Python脚本,用于比对两个Excel文件中的数据,并将不一致项记录到日志文件中。脚本使用Pandas库读取Excel数据,对比指定列,并将结果以特定格式输出,方便数据检查。程序框架包括文件和Sheet的比对,以及批处理和日志生成。最后,脚本被封装为可执行文件,便于团队使用。
摘要由CSDN通过智能技术生成

需求分析

近期需要一个脚本将录入员录入的两个Excel文件进行比对,检查二者录入的内容是否相同,将有错的内容以log日志的方式输出到.txt文件中,输出的内容是“文件1的路径”+“文件2的路径”+“哪个sheet表”+“第几列出问题”。这样方便人员进行确认并重新找出进行检查。

根据这样的需求,首先确定了所使用的工具和程序编写架构:

读取Excel表的数据:使用Python中的Panda库,其中的函数可以很方便的读取出所需要的数据。

程序框架

1.首先实现指定两个文件名的Excel表的指定列的数据读出并比对,按照需求设计输出log日志;

2.其次实现指定两个文件名的Excel表的不同Sheet表中指定列的数据读出并比对,按照要求输出log日志;

3.到这步就已经完成对两个文件的所有数据的比对了,接着把程序封装成函数,编写批处理程序;

4.给定对比的两个文件夹目录,挑出所有.xlsx文件放到列表中,用for循环一个一个打开再调用上一个函数进行比对,输出结果。

5.将其打包封装为.exe可执行文件,这样可以方便团队其他的小伙伴再没装Python或者panda包的情况下也可以利用这个脚本进行对比。

代码实现

  • 对比两个Excel表的异同:

代码如下:

# 对比一个sheet的值是否正确
def compareSheet(file1, file2, wavelist1):
    '''
    该函数对比同一个sheet表中的数据是否正确
    :param file1:
    :param file2:
    :param sheetName:
    :return:
    '''

    sheet = pd.read_excel(wavelist1[0], sheet_name=None)  # 打开一次获取sheet
    sheet_names = list(sheet.keys())  # 获取sheet名称
    flag = len(sheet_names)  # 计算长度
    # print("sheet_names:",sheet_names)
    k = 0  # 控制sheet移动
    if k < flag:
        sheetName = sheet_names[k]
        data1 = pd.read_excel(file1, sheet_name=sheetName, usecols=[1])
        data1 = data1.values
        # print("打开",file1,"成功")
        data2 = pd.read_excel(file2, sheet_name=sheetName, usecols=[1])
        data2 = data2.values
        k = k + 1
        # print("打开", file2, "成功")
        # print("表1的值",data1)
        # print("表2的值",data2)
        len1 = len(data1)
        len2 = len(data2)
        if len1 == len2:
            for i in range(len1):

                test1 = data1[i]
                test2 = data2[i]
                # print('data1', test1)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值