Читать определенные столбцы из CSV-файла с помощью CSV-модуля?

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

Я пытаюсь проанализировать файл csv и извлечь данные только из определенных столбцов.

Пример csv:

< код>ID | Имя | Адрес | Город | Штат | Почтовый индекс | Телефон | OPEID | IPEDS | 10 | C... | 130 W.. | Mo.. | AL... | 3.. | 334.. | 01023 | 10063 | 

Я пытаюсь захватить только определенные столбцы, скажем, ID, Name, Zip и Телефон.

Код, который я просмотрел, заставил меня поверить, что я могу вызвать конкретный столбец по его соответствующему номеру, например: Имя будет соответствовать 2, и повторение каждой строки с использованием row[2] приведет к получению всех элементов в столбце 2. Только это не так.

Вот что я уже сделал:

импорт sys, argparse, csv из настроек import * # аргументы команды parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars ="@" ) parser.add_argument("file", help="csv файл для импорта", действие ="store") args = parser.parse_args() csv_file = args.file # открыть CSV-файл с помощью open(csv_file, "rb") в качестве csvfile: # получить количество столбцов для строки в csvfile.readlines(): array = line .split(",") first_item = array[0] num_columns = len(array) csvfile.seek(0) reader = csv.reader(csvfile, delimiter=" ") include_cols = [1, 2, 6, 7] для строка в читателе: содержимое = список (строка [i] для i в включенных столбцах) напечатать содержимое 

и я ожидаю, что это выведет только определенные столбцы, которые я хочу для каждой строки, кроме это не так, я получаю только последний столбец.