使用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)
-
代码逻辑
- 首先,使用
pandas
库中的read_excel
函数读取两个.xlsx
文件到DataFrame
对象df1
和df2
。 - 接着,检查两个
DataFrame
的列名是否相同。如果不同,直接输出列名差异并返回。 - 然后,通过迭代
df1
的每一行来比较数据。对于每一行,如果该行索引超过了df2
的行数,说明df1
有多余数据并输出提示。否则,比较每列的数据,如果不同则输出差异信息并记录差异数量。 - 最后,如果差异数量为0,则表示两个文件数据相同。
- 首先,使用
-
异常处理
- 在
try - except
块中捕获FileNotFoundError
异常,如果文件不存在,会输出相应的提示信息。
- 在
原文地址:https://blog.csdn.net/QQ_778132974/article/details/142438124
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!