3 回答

TA貢獻1851條經驗 獲得超4個贊
在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貢獻1909條經驗 獲得超7個贊
uniqlines = set(open('/tmp/foo').readlines())
這將為您提供唯一行的列表。
將其寫回到某個文件將很容易:
bar = open('/tmp/bar', 'w').writelines(set(uniqlines))
bar.close()
添加回答
舉報