我有兩個文件。第一個文件包含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