【发布时间】:2014-08-26 16:17:13
【问题描述】:
所以我有两个文件。一个包含旧的东西,另一个包含不同的新东西。
每个文本文件都有相同的格式:
Example_Students_Year_School_Date
我希望能够比较文件,并了解是日期还是学生人数增加了。然后我将 Date 写入它自己的文本文件,将 Student 写入它自己的文本文件。
那么让我们说
OldText 有:
Example_54_1994_WoodCreek_201309
Example_56_2009_Marshall_201408
Example_20_2008_DennnMan_201309
NewText 有:
Example_54_1994_WoodCreek_201402
Example_59_2009_Marshall_201408
NewText 中的第一个条目将发送到 DateText,因为 DATE 较新,而 NewText 中的第二个条目将发送到 StudentText,因为 STUDENTS 增加了。 OldText 中的第三个条目将不会做任何事情,因为它不在 NewText 中。
我目前有:
for OldRecord in StripOldList:
OldSplitRec = OldRecord.split('_')
value1 = OldSplitRec[1]
value2 = OldSplitRec[2]
value3 = OldSplitRec[3]
value3 = OldSplitRec[4]
value3 = OldSplitRec[5]
diffdict = {}
for SomeRec in DiffSplitText:
key1, key2, key3, key4, key5= SomeRec.strip().split('_')
FinalLabel = key1+"_"+key2+"_"+key3+"_"+key4+"_"key5+"_"+key6
diffdict[key1,key2,key3,key4,key5.strip()] = FinalLabel
IsNewEdition = True
IsNewVersion = True
IsNewFileType = True
if (value1 == key1 and value2 == key2):
IsNewFileType = False
if (value3 >= key3):
IsNewEdition = False
if (value5 >= key5):
IsNewVersion = False
if (IsNewFileType == True):
print "No Match"
elif (IsNewEdiion == True):
print "Found new edition"
link1.write(SomeRec)
elif (IsNewVersion == True):
print "Found new version"
link2.write(SomeRec)
.close() #closed all files
它只迭代第一个条目并停止,但不止一个不同的文件。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
一些输入示例会有所帮助
-
假设 OldText 有:Example_54_1994_WoodCreek_201309 Example_56_2009_Marshall_201408 NewText 有:Example_54_1994_WoodCreek_201402 Example_59_1994_Marshall_201408 自从尺寸增加
-
最好将其添加到您的问题中。
-
查看
difflib模块。 -
如果行不匹配,difflib 模块会工作吗? OldText 文件可能有 1,000 个条目;而 NewText 可能只有 50 个。我只需要它来了解学生或日期是否增加,然后将其发送到相应的文本文件。
标签: python python-2.7 for-loop text strip