Czytać konkretne kolumny z pliku csv z modułem csv?

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

Próbuję przeanalizować plik csv i wyodrębnić dane tylko z określonych kolumn.

Przykład csv:

< kod>ID | Nazwa | Adres | Miasto | Stan | Kod pocztowy | Telefon | OPEID | IPEDS | 10 | C... | 130 W.. | Pn.. | AL... | 3.. | 334.. | 01023 | 10063 | 

Próbuję przechwycić tylko określone kolumny, powiedzmy ID, Nazwa, Zip i Telefon.

Kod, na który przejrzałem, skłonił mnie do przekonania, że mogę nazwać konkretną kolumnę jej odpowiednim numerem, np.: Nazwa odpowiadałoby 2, a iteracja przez każdy wiersz przy użyciu row[2] dałaby wszystkie elementy w kolumnie 2. Tylko to nie odpowiada.

Oto co do tej pory zrobiłem:

import sys, argparse, csv z ustawień import * # argumenty poleceń parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars ="@" ) parser.add_argument("plik", help="plik csv do zaimportowania", akcja ="store") args = parser.parse_args() csv_file = args.file # otwórz plik csv z open(csv_file, "rb") jako csvfile: # pobierz liczbę kolumn dla linii w csvfile.readlines(): array = line .split(",") first_item = array[0] num_columns = len(array) csvfile.seek(0) reader = csv.reader(csvfile, delimiter=" ") included_cols = [1, 2, 6, 7] for wiersz w czytniku: content = list(row[i] for i in included_cols) print content 

i spodziewam się, że to spowoduje wydrukowanie tylko określonych kolumn, które chcę dla każdego wiersza, z wyjątkiem nie, otrzymuję tylko ostatnią kolumnę.