比较2个文本文件

时间:2015-09-12 09:03:24

标签: python

我有2个文本文件,我想比较第3列和第4列,只有第1列和第2列在文件中是相同的。

文字1:

12345,67890,4.6,5.7
89736,62828,5.1,4.2
63793,38392,5.4,7.3

文字2:

12345,67890,4.6,5.7
63793,38392,5.4,7.3

我的代码:

pre = open ("g.txt","r")
post = open ("g2.utm","r")
line = pre.readlines()
if not line:                                                
   break                                                     
if line.startswith("L"):
    print ("\n")         #to avoid the header
else :    
    v = line[0:5]                                      
    l = line[6:11]                                      
    i = line[12:14]
    k = line[15:17]
line2 = post.readlines()
if not line2:                                                
   break                                                     
if line2.startswith("L"):
    print ("\n")         #to avoid the header
else :    
    v2 = line[0:5]                                      
    l2 = line[6:11]                                      
    i2 = line[12:14]
    k2 = line[15:17]
    if v == v2 and l == l2 :
        d = (i - i2)
        h = (k - k2)
        if d >= 6.25 and h >=6.25:
            print (v2,l2,"not ok")

print ("Done")

1 个答案:

答案 0 :(得分:0)

你的代码太重复而且杂乱无章。我建议你对代码进行一些修改。首先逐行读取文件。你怎么能这样做?

with open("g.txt","r") as f:
    for line in f:
        a_line_of_the_file = line

接下来,不是使用索引访问值,而是可以用逗号分隔它们并将它们保存到列表中。

valuelist = a_line_of_the_file.split(',') 
# contains ["12345","67890","4.6","5.7"] at first iteration.

当您从两个文件的每一行中有两个列表时,您始终可以按索引对它们进行比较,如:

if valuelist1[0]== valueList2[0]:
    do_something

如果您需要其他数据类型,请先输出值。

你现在应该自己解决问题。如果你仍然有错误,请告知。