我有一个包含各种代码的文本文件(每行一个代码),其中一些不止一次出现(总是按顺序)。我想知道如何删除重复值的那些行。
示例:File1.dat
84578
84581
84627
84761
84761
84792
84792
84792
84886
84886
84905
84905
84905
我希望输出为:
84578
84581
84627
84761
84792
84886
84905
注意:在我的文件中,行之间没有空格。 任何解决方案都可以,脚本,终端命令等。 提前谢谢。
答案 0 :(得分:2)
由于重复的行是连续的,因此使用Linux / MSYS,您只需使用uniq
使用您的数据输出:
$ uniq lines.txt
84578
84581
84627
84761
84792
84886
84905
Python解决方案使用生成器理解来检查第一行或行与先前行不同,以在输出文件中发出行:
with open("lines.txt") as fr,open("uniq.txt","w") as fw:
for line in (x for i,x in enumerate(fr) if i==0 or lines[i-1]!=x):
fw.write(line)
答案 1 :(得分:-1)
file = open("FileWithDublicates.txt","r");
lines = file.readlines()
lines = set(lines)
file.close
file = open("FileWithDublicates.txt","w");
for line in lines:
file.write(line)
这应该可以解决问题。 但是换行也只会存在一次