我有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")
答案 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
如果您需要其他数据类型,请先输出值。
你现在应该自己解决问题。如果你仍然有错误,请告知。