我正在尝试从包含重复的子字符串的.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,因此不进行过滤。
请问有人可以告诉我错误在哪里或如何解决?
答案 0 :(得分:1)
如果仅对前60个字符感兴趣,则应仅将此切片存储在集合(lines_see.add(string_to_compare)
)中,并将支票更改为if string_to_compare not in lines_seen:
。