如何从python的txt文件中删除带有重复子字符串的行?

时间:2018-07-13 16:50:13

标签: python string

我正在尝试从包含重复的子字符串的.txt文件中删除行。可以说我有这样的行:

aaaaaa, something.... 
bbbbbb, something differet.. 
cccccc, some other text.. 
cccccc, again different text.. 
dddddd, again some other text..
eeeeee, some other text... 
etc..

我想过滤掉所有以相同子字符串开头的行(前N个字符),因此只有一个(第一个字符)行开头。这些我想复制到新的txt文件。

因此在上面的示例中,前三行将被复制,第四行将被跳过,其余将被复制。

我想复制所有行,而不仅仅是我要检查的子字符串

这是我根据发现的内容所写的内容

lines_seen = set()
outfile = open(outfile, "w")

for line in open(infile, "r"):
    string_to_compare = line[0:N] #save the substring into a variable
    if line.startswith(string_to_compare) not in lines_seen:
        outfile.write(line)
        lines_seen.add(line)
outfile.close()

上面的代码实际上将所有行从outfile复制到infile,因此不进行过滤。

请问有人可以告诉我错误在哪里或如何解决?

1 个答案:

答案 0 :(得分:1)

如果仅对前60个字符感兴趣,则应仅将此切片存储在集合(lines_see.add(string_to_compare))中,并将支票更改为if string_to_compare not in lines_seen:

相关问题