比较两个文本文件与拆分文本2.7

时间:2014-08-26 16:17:13

标签: python python-2.7 for-loop text strip

所以我有两个文件。一个包含Old Stuff,另一个包含不同的New Stuff。

每个文本文件都具有相同的格式:
Example_Students_Year_School_Date

我希望能够比较这些文件,并了解它是日期还是增加的学生。然后我将Date写入自己的文本文件,将Students写入自己的文本文件。

所以,让我们说吧 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

它只迭代第一个条目并停止,但不仅仅有一个不同的文件。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

这是我提出的代码:

value1 = [];
value2 = [];
value3 = [];
value4 = [];
value5 = [];

for OldRecord in StripOldList:
    OldSplitRec =  OldRecord.split('_')
    value1 += [OldSplitRec[0]]
    value2 += [OldSplitRec[1]]
    value3 += [OldSplitRec[2]]
    value4 += [OldSplitRec[3]]
    value5 += [OldSplitRec[4]]

for SomeRec in DiffSplitText:
    key1, key2, key3, key4, key5= SomeRec.split('_')

    for k in range(0,len(value1) ):
        if (value1[k] != key1 and value2[k] != key2):
            print "No Match"
        if (value3[k] < key3):
            print  "Found new edition"
            link1.write(SomeRec)
        if (value5[k] < key5):
            print "Found new version"
            link2.write(SomeRec)


.close() #close all files