首页 > 解决方案 > python中的文件比较并输出差异

问题描述

我是 python 新手,需要帮助来比较两个 TXT 文件并输出它们的差异。这是场景:

这些文本文件包含数据库表的结构。我们通常会更新数据库并对其进行结构更改,因此基本上我们将拥有一对 TXT 文件——(例如)一个 Employee.txt 文件(在数据库升级之前位于 C:\before_upgrade 之类的文件夹中)和一个 Employee .txt 文件(升级后在 C:\after_upgrade 等文件夹中)包含员工表的结构。Employee.txt 将包含Column_Name、DataType、IsNullable、ColumnLength值,例如:

Emp_Id, bigint, No, null
Emp_F_Name, varchar, Yes, 100
Emp_L_Name, varchar, Yes, 200
IsActive, smallint, No, null

现在,我需要比较这些 TXT 文件,并以一种更易于用户理解的方式输出差异。就像对于一列,IsNullable 从 Yes 变为 No,那么我们输出类似

对于 Column_name: Emp_L_Name,IsNullable 字段更改为 NO

或者如果添加了新列

添加了新的 XYZ 列

或者如果一列被删除

列 IsActive 被丢弃”等。

数据库中有多个表,因此我们需要比较多个文本文件对。表名将从另一个文本文件(如 table_names.txt)中读取。

提前致谢。

标签: pythonpython-3.xdatabasefile-comparison

解决方案


希望你一切安好!

对于检查列,假设第一行是您可以从文件中读取的列名,以逗号分隔并转换为集合。然后只需使用设置差异来发现删除了什么和添加了什么。

要检查行,请逐行读取两个文件并以逗号分隔。然后为每个公共列检查值是否已更改。

希望能帮助到你!注意安全!


推荐阅读