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.