我有一个只有一栏的文件。如何删除文件中的重复行?
3 回答
梦里花落0921
TA贡献1772条经验 获得超5个赞
在Unix / Linux上,uniq根据David Locke的答案使用命令,或sort根据William Pursell的注释使用命令。
如果您需要Python脚本:
lines_seen = set() # holds lines already seen
outfile = open(outfilename, "w")
for line in open(infilename, "r"):
if line not in lines_seen: # not a duplicate
outfile.write(line)
lines_seen.add(line)
outfile.close()
更新:本sort/ uniq组合将删除重复,但返回与排序线,这可能会或可能不是你想要的是一个文件。上面的Python脚本不会对行进行重新排序,而只会删除重复项。当然,要使上面的脚本也能排序,只需outfile.write(line)在循环之后省去and,然后立即执行即可outfile.writelines(sorted(lines_seen))。
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
uniqlines = set(open('/tmp/foo').readlines())
这将为您提供唯一行的列表。
将其写回到某个文件将很容易:
bar = open('/tmp/bar', 'w').writelines(set(uniqlines))
bar.close()
- 3 回答
- 0 关注
- 556 浏览
添加回答
举报
0/150
提交
取消