python – 从txt文件中删除重复的行

前端之家收集整理的这篇文章主要介绍了python – 从txt文件中删除重复的行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在处理包含由行分隔的数据的大型文本文件(~20MB).
大多数数据条目是重复的,我想删除这些重复只保留一个副本.

此外,为了使问题稍微复杂一些,重复一些条目并附加额外的信息.在这种情况下,我需要保留包含额外信息的条目并删除旧版本.

例如
我需要离开这个:

BOB 123 1DB
JIM 456 3DB AX
DAVE 789 1DB
BOB 123 1DB
JIM 456 3DB AX
DAVE 789 1DB
BOB 123 1DB EXTRA BITS

对此:

JIM 456 3DB AX
DAVE 789 1DB
BOB 123 1DB EXTRA BITS

NB.最后的订单无关紧要.

有效的方法是什么?

我可以使用awk,python或任何标准的linux命令行工具.

谢谢.

最佳答案
如何(在Python中):

prev = None
for line in sorted(open('file')):
  line = line.strip()
  if prev is not None and not line.startswith(prev):
    print prev
  prev = line
if prev is not None:
  print prev

如果您发现内存使用存在问题,可以使用Unix排序(即disk-based)将排序作为预处理步骤进行排序,并更改脚本以使其不会将整个文件读入内存.

猜你在找的Linux相关文章