2012-04-18 4 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! ;) [print (line) для i, строка в перечислении (open ("csv")), если не i% 2] (не делайте этого, иначе умирает котенок) – ch3ka

+0

спасибо! это быстрое решение :-) – codious

1

Вы можете прочитать файл в массив, минуя все остальные строки, а затем записать его (правильно на этот раз!) Переписав оригинальный файл. Если файл слишком большой для хранения в памяти, напишите исправленную версию, когда вы читаете оригинал во временном файле, а затем переместите/скопируйте его, чтобы перезаписать оригинал.

Смежные вопросы