我正在处理包含由行分隔的数据的大型文本文件(~20MB).
大多数数据条目是重复的,我想删除这些重复只保留一个副本.
此外,为了使问题稍微复杂一些,重复一些条目并附加额外的信息.在这种情况下,我需要保留包含额外信息的条目并删除旧版本.
例如
我需要离开这个:
BOB 123 1DBJIM 456 3DB AXDAVE 789 1DBBOB 123 1DBJIM 456 3DB AXDAVE 789 1DBBOB 123 1DB EXTRA BITS
对此:
JIM 456 3DB AXDAVE 789 1DBBOB 123 1DB EXTRA BITS
NB.最后的订单无关紧要.
有效的方法是什么?
我可以使用awk,python或任何标准的linux命令行工具.
谢谢.
最佳答案如何(在Python中):prev = Nonefor line in sorted(open('file')): line = line.strip() if prev is not None and not line.startswith(prev): print prev prev = lineif prev is not None: print prev
如果您发现内存使用存在问题,可以使用Unix排序(即disk-based)将排序作为预处理步骤进行排序,并更改脚本以使其不会将整个文件读入内存. 总结
以上是内存溢出为你收集整理的python – 从txt文件中删除重复的行全部内容,希望文章能够帮你解决python – 从txt文件中删除重复的行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)