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.