python - 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)中读取。
提前致谢。
解决方案
希望你一切安好!
对于检查列,假设第一行是您可以从文件中读取的列名,以逗号分隔并转换为集合。然后只需使用设置差异来发现删除了什么和添加了什么。
要检查行,请逐行读取两个文件并以逗号分隔。然后为每个公共列检查值是否已更改。
希望能帮助到你!注意安全!