从CSV动态删除列

时间:2013-04-22 11:19:25

标签: python

我想动态删除CSV中的列,这是我到目前为止所拥有的。我不知道从哪里开始:

# Remove column not needed.
column_numbers_to_remove = 3,2,
file = upload.filepath
#I READ THE FILE
file_read = csv.reader(file)

REMOVE 3 and 2 column from the CSV
UPDATE SAVE CSV 

2 个答案:

答案 0 :(得分:3)

使用enumerate获取列索引,并创建一个没有您不想要的列的新行...例如:

for row in file_read:
    new_row = [col for idx, col in enumerate(row) if idx not in (3, 2)]

然后使用csv.writer在某处写出你的行......

答案 1 :(得分:1)

读取csv并在删除列后写入另一个文件。

import csv
creader = csv.reader(open('csv.csv'))
cwriter = csv.writer(open('csv2.csv', 'w'))

for cline in creader:
   new_line = [val for col, val in enumerate(cline) if col not in (2,3)]
   cwriter.writerow(new_line)