Leia colunas específicas de um arquivo csv com o módulo csv?

| | | | | | | | | | | | | | | | | | | |

Estou tentando analisar um arquivo csv e extrair os dados apenas de colunas específicas.

Exemplo de csv:

< código>ID | Nome | Endereço | Cidade | Estado | CEP | Telefone | OPEID | IPEDS | 10 | C... | 130 W.. | M.. | AL... | 3.. | 334.. | 01023 | 10063 | 

Estou tentando capturar apenas colunas específicas, digamos ID, Nome, CEP e Telefone.

O código que examinei me levou a acreditar que posso chamar a coluna específica pelo número correspondente, ou seja: Nome corresponderia a 2 e iterar em cada linha usando row[2] produziria todos os itens na coluna 2. Só que não.

Aqui está o que eu fiz até agora:

import sys, argparse, csv from settings import * # command arguments parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars ="@" ) parser.add_argument("file", help="csv file to import", action ="store") args = parser.parse_args() csv_file = args.file # abre arquivo csv com open(csv_file, "rb") como csvfile: # obtém o número de colunas para linha em csvfile.readlines(): array = line .split(",") first_item = array[0] num_columns = len(array) csvfile.seek(0) reader = csv.reader(csvfile, delimiter=" ") included_cols = [1, 2, 6, 7] for row in reader: content = list(row[i] for i in included_cols) print content 

e estou esperando que isso imprima apenas as colunas específicas que eu quero para cada linha, exceto isso não acontece, recebo apenas a última coluna.