Leggi colonne specifiche da un file CSV con modulo CSV?

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

Sto cercando di analizzare un file CSV ed estrarre i dati solo da colonne specifiche.

Esempio CSV:

< codice>ID | Nome | Indirizzo | Città | Stato | CAP | Telefono | OPEID | IPEDS | 10 | C... | 130 W.. | Lu.. | AL... | 3.. | 334.. | 01023 | 10063 | 

Sto cercando di acquisire solo colonne specifiche, ad esempio ID, Nome, Zip > e Telefono.

Il codice che ho esaminato mi ha portato a credere di poter chiamare la colonna specifica con il numero corrispondente, quindi: Nome corrisponderebbe a 2 e l'iterazione di ogni riga utilizzando row[2] produrrebbe tutti gli elementi nella colonna 2. Solo che non è così.

Ecco cosa ho fatto finora:

import sys, argparse, csv da settings import * # command arguments parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars ="@" ) parser.add_argument("file", help="file csv da importare", azione ="store") args = parser.parse_args() csv_file = args.file # apre il file csv con open(csv_file, "rb") come csvfile: # ottiene il numero di colonne per la riga in csvfile.readlines(): array = line .split(",") first_item = array[0] num_columns = len(array) csvfile.seek(0) reader = csv.reader(csvfile, delimiter=" ") includes_cols = [1, 2, 6, 7] per riga nel lettore: content = list(row[i] for i in includes_cols) print content 

e mi aspetto che questo stamperà solo le colonne specifiche che voglio per ogni riga tranne non lo fa, ottengo solo l'ultima colonna.