我有两个文件。第一个文件包含6个字符键(SA0001,SA1001等)的列表。第二个文件包含日期和金额列表,前六个位置将与第一个文件中的键相匹配。我想验证第一个文件中的每个键在第二个文件中至少有一个匹配。可能有多于一个匹配是可以的,第二个文件中可能有记录,第一个文件中没有键也是可以的。所以基本上是一个循环内的循环。当我想在第一次匹配后跳出内部循环时会出现问题,因为第二个文件可能相当大。它正确地打印出“找到”消息并且中断,但是如果到达第二个文件的末尾而没有找到匹配,它将不会打印“未找到”消息。我的代码到目前为止是:从文件中搜索字符串
unvalues = open("file1.txt", "r")
newfunds = open("file2.txt", "r").readlines()
i = 1
for line in newfunds:
line = line.strip()
for line2 in iter(unvalues.readline, ""):
try:
if line == line2[:6]:
print "%s: Matching %s to %s for date %s" % (i, line, line2[:6], line2[6:14])
break
except StopIteration: print "%s: No match for %s" % (i, line)
i += 1
unvalues.seek(0)
你考虑使用一个SQL数据库? – 2010-01-06 20:34:44
第二个文件每天都在变化。我想安排这个脚本,然后让它只打印不匹配。用户可以查看输出并确定发生不匹配的原因。数据库会增加开销。 – 2010-01-06 20:43:28
每个文件有多少行,大约? – 2010-01-06 20:49:31