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

2024-09-30 10:29:48 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有两份文件。一个包含旧的内容,另一个包含不同的新内容。在

每个文本文件的格式相同:
学生、学年、学校日期

我希望能够比较文件,并了解是日期增加还是学生增加。然后我把日期写在自己的文本文件里,学生写在自己的文本文件里。在

所以我们说 旧文本有:
示例_54_1994_WoodCreek_201309
示例_56_2009_Marshall_201408 示例\u 20_2008_DennnMan_201309

NewText有:
示例_54_1994_WoodCreek_201402
示例_59_2009_Marshall_201408

NewText中的第一个条目将被发送到DateText,因为日期是最近的,NewText中的第二个条目将发送给StudentText,因为学生人数增加了。对于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

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


Tags: 文件true示例if条目学生key2key1
1条回答
网友
1楼 · 发布于 2024-09-30 10:29:48

下面是我想出的代码:

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

相关问题 更多 >

    热门问题