csv modülü ile bir csv dosyasından belirli sütunları okuyun?

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

Bir csv dosyasını ayrıştırmaya ve verileri yalnızca belirli sütunlardan çıkarmaya çalışıyorum.

Örnek csv:

< kod>Kimlik | Ad | Adres | Şehir | Eyalet | Posta Kodu | Telefon | OPEID | IPEDS | 10 | C... | 130 W.. | Mo.. | AL... | 3.. | 334.. | 01023 | 10063 | 

Yalnızca belirli sütunları yakalamaya çalışıyorum, örneğin ID, Ad, Zip ve Telefon.

Baktığım kod, belirli bir sütunu karşılık gelen numarasıyla arayabileceğime inanmamı sağladı, yani: Ad, 2'a karşılık gelir ve satır[2] kullanılarak her satırda yineleme yapmak 2. sütundaki tüm öğeleri üretir. Sadece bu olmaz.

İşte şimdiye kadar yaptıklarım:

sys, argparse, csv'yi ayarlardan içe aktar import * # komut argümanları parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars) ="@" ) parser.add_argument("dosya", help="içe aktarılacak csv dosyası", eylem ="store") args = parser.parse_args() csv_file = args.file # csv dosyasını open(csv_file, "rb") ile csvfile olarak aç: # csvfile.readlines() içindeki satır için sütun sayısını al: dizi = satır .split(",") first_item = dizi[0] num_columns = len(dizi) csvfile.seek(0) okuyucu = csv.reader(csvfile, delimiter=" ") dahil_kols = [1, 2, 6, 7] için okuyucuda satır: içerik = liste(include_cols içindeki i için satır[i]) içeriği yazdır 

ve bunun yalnızca her satır için istediğim belirli sütunları yazdıracağını bekliyorum. olmuyor, sadece son sütunu alıyorum.