Lire des colonnes spécifiques à partir d’un fichier csv avec le module csv ?

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

J'essaie d'analyser un fichier csv et d'extraire les données de colonnes spécifiques uniquement.

Exemple csv :

ID | Nom | Adresse | Ville | État | Code postal | Téléphone | OPEID | IPEDS | 10 | C... | 130 W.. | Mo.. | AL... | 3.. | 334.. | 01023 | 10063 | 

J'essaie de capturer uniquement des colonnes spécifiques, par exemple ID, Nom, Zip et Téléphone.

Le code que j'ai regardé m'a amené à croire que je peux appeler la colonne spécifique par son numéro correspondant, c'est-à-dire : Nom correspondrait à 2 et parcourir chaque ligne en utilisant row[2] produirait tous les éléments de la colonne 2. Sauf que ce n'est pas le cas.

Voici ce que j"ai fait jusqu"à présent :

import sys, argparse, csv from settings import * # command arguments parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars ="@" ) parser.add_argument("file", help="fichier csv à importer", action ="store") args = parser.parse_args() csv_file = args.file # ouvrir le fichier csv avec open(csv_file, "rb") as csvfile : # obtenir le nombre de colonnes pour la ligne dans csvfile.readlines() : array = line .split(",") first_item = array[0] num_columns = len(array) csvfile.seek(0) reader = csv.reader(csvfile, delimiter=" ") inclus_cols = [1, 2, 6, 7] pour row in reader : content = list(row[i] for i in includes_cols) print content 

et je m'attends à ce que cela n'imprime que les colonnes spécifiques que je veux pour chaque ligne sauf ce n'est pas le cas, je n'obtiens que la dernière colonne.