我有一个很长的文本文件(2GB),我删除了重复使用:
sort -u filename > outfile1
以及
>>> data = open('filename', 'r').readlines()
>>> u = list(set(data))
>>> open('outfile2', 'w').writelines(u)
但是,两个文件outfile2和outfile1的条目数不同:
wc -l outfile?
185866729 filename
109608242 outfile1
109611085 outfile2
这怎么可能?你知道吗
更新。 在请求查看数据之后,我发现python将删除重复项,如:
låsningernes
læsningernes
løsningernes
实际上,在sort -u
中忽略第二个字符,只保留第一个条目。Python在区分这三条记录方面做得很好。你知道吗
如果将它们合并并创建为一个列表,则可以执行以下操作:
这也保持了它包含的项目的顺序
如果看不到实际输出(或者至少是“额外”行),我们只能猜测。你知道吗
但归根结底还是要看
sort
做了多少预处理,这比set()
找到更多的重复项。你知道吗可能的原因是
sort
移除,但不能被set
移除。你知道吗相关问题 更多 >
编程相关推荐