2012-04-18 60 views
0

我有一个csv文件如下:备用CSV行删除

gindex 
1 
1 
2 
2 
3 
3 
7 
7 

我印刷每个元素两次误。我怎样才能删除每个重复的行得到下面的结果:

gindex 
1 
2 
3 
7 

回答

3

无需花哨的CSV处理,如果是真的只是要取消所有的二线,像做:

with open("csv") as f: 
    for i, line in enumerate(f): 
     if i % 2 == 0: 
      print(line) 
+1

Oneliner! ;)[打印(行)为我,在列举行(打开(“csv”))如果不是我%2](不要那样做,否则小猫死) – ch3ka 2012-04-18 13:13:54

+0

谢谢!这是一个快速解决方案:-) – codious 2012-04-18 13:14:56

1

你可以读文件到一个数组,跳过所有其他行,然后写出来(正确这段时间!),覆盖原文件。如果文件太大而无法存储到内存中,请在读取原始文件时将修正版本写入临时文件,然后移动/复制该文件以覆盖原始文件。