Python:比较两个文本文件 - 在文本文件中搜索

时间:2017-09-07 07:19:04

标签: python text-files

我必须比较两个巨大的文本文件,结构相同但值不同。文件的布局有点像这样

File 1 :

Name : ABCD
Insurance Comapmy : Comp1 
Spouse : BCDF
Doctor : Dr AB
Membership No : 123456
Amount : 1234
Insurance Claimed : Y


Name : ABCE
Insurance Comapmy : Comp2 
Spouse : BCDE
Doctor : Dr AB
Membership No : 123457
Amount : 123
Insurance Claimed : N

Name : ABCF
Insurance Comapmy : Comp1 
Spouse : BCDG
Doctor : Dr AC
Membership No : 123458
Amount : 12345
Insurance Claimed : Y

..... and so on


File 2 :

Name : ABCD
Insurance Comapmy : Comp1 
Spouse : BCDF
Doctor : Dr AB
Membership No : 123456
Amount : 1224
Insurance Claimed : Y


Name : ABCE
Insurance Comapmy : Comp2 
Spouse : BCDE
Doctor : Dr AB
Membership No : 123457
Amount : 123
Insurance Claimed : N

Name : ABCF
Insurance Comapmy : Comp1 
Spouse : BCDG
Doctor : Dr AB
Membership No : 123458
Amount : 12345
Insurance Claimed : Y

..... and so on

现在我必须比较两个文件并将输出写入第三个文件

如果记录匹配,那么我必须跳过,如果它不同,那么我必须以下面的格式在下一个文件中写下记录。

File 3 :

Membership No : 123456
>Amount : 1234
<Amount : 1224

Membership No : 123458
>Doctor : Dr AC
<Doctor : Dr AB

比较工作正常,显示所有差异。

问题是显示会员编号

我正在存储会员资格并显示最新会员资格。但是如果在未获取最新成员资格no的情况下发生差异,那么它将显示错误的成员资格号。

与第一种情况一样,在金额字段中会员资格之后出现差异。所以我们有最新的会员资格。它会显示出来。

但在第二种情况下,差异发生在新成员资格之前,在医生领域。所以我们没有获得最新的会员资格,而是展示了旧会员资格。

我正在取得会员资格。像这样并将其存储在列表中:

if "Membership No :" in f1_line:
        if f1_line not in out:
            out.append(f1_line.split(" Membership No : "))

out是所有会员编号

的列表

我想搜索下一个会员号并在“名称”字段到来时存储它。但我无法通过“mmap”取得成功。

0 个答案:

没有答案