在python中比较文件并输出差异

问题描述 投票:0回答:1

我是python新手,需要帮助比较两个TXT文件并输出它们的差异。情况是这样的。

这些文本文件包含一个数据库表的结构。我们通常会更新数据库并对其进行结构性修改,所以基本上我们会有一对TXT文件--(例如)一个Employee.txt文件(在DB升级之前,在C:\before_upgrade这样的文件夹中)和一个Employee.txt文件(在升级之后,在C:\after_upgrade这样的文件夹中),包含Employee表的结构。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列"等。

DB中有几个表,所以我们需要比较多个文本文件对。表名将从另一个文本文件(如table_names.txt)中读取。

先谢谢你了。

python python-3.x database file-comparison
1个回答
0
投票

希望你做得很好!

对于检查列名,假设第一行是列名,你可以从文件中读出,用逗号分割,然后转换为集合。然后使用集差来发现哪些被删除了,哪些被添加了。

对于检查行,逐行读取两个文件,并用逗号分割。然后对每一个公共列检查其值是否被改变。

希望对你有所帮助! 注意安全!

© www.soinside.com 2019 - 2024. All rights reserved.