2016-11-03 4 views
0

У меня есть разделенные запятой CSV-файл, как это:Удаление ячеек содержимое файла CSV с помощью питона

A,B,C,D,E 
1,4,5,6,7 
9,52,12,0,7 
1,5,15,6,9 

Я хочу, чтобы удалить содержимое 4-го столбца, но не заголовок.

желаемый результат заключается в следующем:

A,B,C,D,E 
1,4,5,,4 
9,52,12,,7 
1,5,15,,9 

, как я могу это сделать без использования панд?

+0

Возможный дубликат [Удаление столбцов в CSV с питоном] (Http: // StackOverflow. com/questions/7588934/deleting-columns-in-a-csv-with-python) – roganjosh

+0

просто увидел дубликат. Тем не менее, ни один из ответов не обрабатывает заголовок. –

+0

@ Jean-FrançoisFabre Я соглашусь с этим, но давайте, по крайней мере, дублированную часть можно было попробовать? Нет никаких доказательств усилий, и название вопроса не помогло бы кому-либо сохранить строку заголовка, если это то, с чем они боролись. – roganjosh

ответ

0

Сначала откройте файл, прикрепите его к объекту чтения csv.

Прочитайте заголовок, выполнив итерацию вручную на объекте csv.reader (специальный случай). Затем откройте выходной файл, читать входные строки, удалить 4-й элемент и записать обратно строки в выходном файле:

import csv 

with open("input.csv") as fr: 
    cr = csv.reader(fr) 
    title = next(cr) 
    with open("output.csv","w") as fw: # add ,newline='' for python 3 
     cw = csv.writer(fw) 
     cw.writerow(title) 
     for row in cr: 
      row[3]="" 
      cw.writerow(row) 
Смежные вопросы