自学内容网 自学内容网

使用python写出对比两个xlsx文件

import pandas as pd


def compare_xlsx(file1_path, file2_path):
    try:
        df1 = pd.read_excel(file1_path)
        df2 = pd.read_excel(file2_path)

        # 检查列名是否相同
        if list(df1.columns)!= list(df2.columns):
            print("列名不同:")
            print("文件1列名:", list(df1.columns))
            print("文件2列名:", list(df2.columns))
            return

        # 比较数据
        diff_count = 0
        for index, row1 in df1.iterrows():
            if index >= len(df2):
                print(f"文件1比文件2多数据,在索引 {index} 处开始有多余数据。")
                break
            row2 = df2.iloc[index]
            for col in df1.columns:
                if row1[col]!= row2[col]:
                    diff_count += 1
                    print(f"在索引 {index},列 {col} 处数据不同:{row1[col]}{row2[col]}")
        if diff_count == 0:
            print("两个文件数据相同。")
    except FileNotFoundError:
        print("文件不存在,请检查文件路径。")


以下是使用示例:

file1 = "test1.xlsx"
file2 = "test2.xlsx"
compare_xlsx(file1, file2)


  1. 代码逻辑

    • 首先,使用pandas库中的read_excel函数读取两个.xlsx文件到DataFrame对象df1df2
    • 接着,检查两个DataFrame的列名是否相同。如果不同,直接输出列名差异并返回。
    • 然后,通过迭代df1的每一行来比较数据。对于每一行,如果该行索引超过了df2的行数,说明df1有多余数据并输出提示。否则,比较每列的数据,如果不同则输出差异信息并记录差异数量。
    • 最后,如果差异数量为0,则表示两个文件数据相同。
  2. 异常处理

    • try - except块中捕获FileNotFoundError异常,如果文件不存在,会输出相应的提示信息。

原文地址:https://blog.csdn.net/QQ_778132974/article/details/142438124

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!