Python 仅打印第二列中唯一的行

Python 仅打印第二列中唯一的行,python,python-2.7,csv,set,Python,Python 2.7,Csv,Set,我有一个文件(1.csv),其中的文本行如下所示: "redostoneage",RedoStoneAge,False,7378,I love America. I love our Constitution. I hope we return to our LIBERTARIAN values! "CelebVolger",redostoneage,False,7378,I love America. I love our Constitution. I hope we return to o

我有一个文件(1.csv),其中的文本行如下所示:

"redostoneage",RedoStoneAge,False,7378,I love America. I love our Constitution. I hope we return to our LIBERTARIAN values!
"CelebVolger",redostoneage,False,7378,I love America. I love our Constitution. I hope we return to our LIBERTARIAN values!
"PatsyRoussel",PatsyRoussel,False,1690,Blue Libbie democrat progressive and proud of it !!
我只想打印(或写入一个新的.csv)行,其中第二列(即redostoneage)不会在紧跟其后的行上重复。这就像在unix中一样,是一个不区分大小写的uniq命令。不需要排序。因此,对于输出,理想情况下我希望:

"redostoneage",RedoStoneAge,False,7378,I love America. I love our Constitution. I hope we return to our LIBERTARIAN values!
"PatsyRoussel",PatsyRoussel,False,1690,Blue Libbie democrat progressive and proud of it !!
我见过一些人用电视机做这个。我想我已经接近了,但我无法让电视机正常工作:

lines_seen = set() # holds lines already seen
for line in open('1.csv', "r"):
    columns = line.split(',')
    if len(columns) >= 2:
        username = columns[1]
        lowercaseusername = username.lower()
        if lowercaseusername not in lines_seen: # not a duplicate
            print line.strip()

您唯一缺少的是添加到您看到的行:

if lowercaseusername not in lines_seen:
    lines_seen.add(lowercaseusername) # <-- facepalm here
    print line.strip()
如果小写EUSERNAME不在行中,请参见:

行。加上(小写字母eusername)#确实是Facepalm。就这样。非常感谢。