Python 删除textfile中的重复行-除非它包含一个";{";或";}";

Python 删除textfile中的重复行-除非它包含一个";{";或";}";,python,Python,我有一个非常大的文本文件,内容如下: @INBOOK{Ackermann1999-b, author = {Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackerma

我有一个非常大的文本文件,内容如下:

@INBOOK{Ackermann1999-b, 
  author = {Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, 
        K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. 
        and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and 
        Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, 
        K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. 
        and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and 
        Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, 
        K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. 
        and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and 
        Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann}, 
  year = {1980}, 
  timestamp = {1995-12-02} 
}      
我想删除重复的行,除了这些包含括号{或}的行。 结果应该如下所示:

@INBOOK{Ackermann1999-b, 
  author = {Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, 
        Ackermann, K.-F. and Ackermann, K.-F. and Ackermann, K.-F. and Ackermann}, 
  year = {1980}, 
  timestamp = {1995-12-02} 
} 
多亏了Vinay Sajip,我遇到了这个Python脚本:

lines_seen = set() # holds lines already seen 
outfile = open("literatur_clean.txt", "w") 
for line in open("literatur_dupl.txt", "r"): 
    if line not in lines_seen: # not a duplicate 
        outfile.write(line) 
        lines_seen.add(line) 
outfile.close() 
但它也会删除带有右括号}的行和具有相同authordata的行。 因此,我需要括号的条件

有人能指出我加入这个条件吗


提前感谢,

感谢eumiro,只需稍加修改“或”代替“和”即可完美工作:如果(“{”在行中或“}”在行中)或行中未看到:
if ('{' in line or '}' in line) and line not in lines_seen: # not a duplicate