¿Leer columnas específicas de un archivo csv con el módulo csv?

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

Estoy tratando de analizar un archivo csv y extraer los datos solo de columnas específicas.

Ejemplo de csv:

< código>ID | Nombre | Dirección | Ciudad | Estado | Código postal | Teléfono | OPEID | IPEDS | 10 | C... | 130 W.. | Mo.. | AL... | 3.. | 334.. | 01023 | 10063 | 

Estoy tratando de capturar solo columnas específicas, digamos ID, Name, Zip y Teléfono.

El código que he mirado me ha llevado a creer que puedo llamar a la columna específica por su número correspondiente, por ejemplo: Nombre correspondería a 2 e iterar a través de cada fila usando row[2] produciría todos los elementos en la columna 2. Solo que no.

Esto es lo que he hecho hasta ahora:

import sys, argparse, csv from settings import * # command arguments parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars ="@" ) parser.add_argument("archivo", ayuda="archivo csv para importar", acción ="almacenar") args = parser.parse_args() csv_file = args.file # abrir archivo csv con open(csv_file, "rb") como csvfile: # obtener el número de columnas para la línea en csvfile.readlines(): matriz = línea .split(",") first_item = array[0] num_columns = len(array) csvfile.seek(0) lector = csv.reader(csvfile, delimitador=" ") include_cols = [1, 2, 6, 7] para fila en el lector: contenido = lista (fila [i] para i en columnas incluidas) imprimir contenido 

y espero que esto imprima solo las columnas específicas que quiero para cada fila, excepto no es así, solo obtengo la última columna.