Python - 删除具有特定键的重复行

时间:2012-10-18 09:42:18

标签: python file tokenize duplicate-removal

我在文本文件(示例代码段)中有大约500k行,如下所示 -

1,Party-120273.gif,16256,23ss423
2,Party-120275.gif,16456,23423
3,Party-120273.gif,12656,232423
4,Party-120273.gif,165236,2312423
5,Party-120276.gif,165236,2312423

如何根据第二个值列删除文件中重复出现的行。例如,在上面的行中,删除包含 Party-120273.gif 的行的重复出现。第一次出现的应该是未删除的。因此输出应该是 -

1,Party-120273.gif,16256,23ss423
2,Party-120275.gif,16456,23423
5,Party-120276.gif,165236,2312423

我必须为整个文件执行此操作,并删除第二列中具有重复值的重复行。我怎么能在python中做到这一点?

1 个答案:

答案 0 :(得分:4)

它必须是Python吗?为什么不使用sort(1)

sort --field-separator=, --key=2,2 --unique < file

如果您仍想在Python中执行此操作,请查看csv module以解析这些行:

seenKeys = set()
for row in reader:
    if row[1] in seenKeys: continue

    seenKeys.add( row[1] )
    print ', '.join(row)