Ik probeer een csv-bestand te ontleden en de gegevens uit alleen specifieke kolommen te extraheren.
Voorbeeld csv:
ID | Naam | Adres | Stad | Staat | Postcode | Telefoon | OPEID | IPEDS | 10 | C... | 130 W.. | Ma.. | AL... | 3.. | 334.. | 01023 | 10063 |
Ik probeer alleen specifieke kolommen vast te leggen, bijvoorbeeld ID
, Naam
, Zip
en Telefoon
.
Code die ik heb bekeken, heeft me doen geloven dat ik de specifieke kolom kan bellen met het bijbehorende nummer, dus: Naam
zou overeenkomen met 2
en het doorlopen van elke rij met behulp van row[2]
zou alle items in kolom 2 opleveren. Alleen niet.
Dit is wat ik tot nu toe heb gedaan:
import sys, argparse, csv from settings import * # command arms parser = argparse.ArgumentParser(description="csv to postgres", fromfile_prefix_chars ="@" ) parser.add_argument("file", help="csv-bestand om te importeren", actie ="store") args = parser.parse_args() csv_file = args.file # open csv-bestand met open(csv_file, "rb") als csvfile: # verkrijg het aantal kolommen voor de regel in csvfile.readlines(): array = regel .split(",") first_item = array[0] num_columns = len(array) csvfile.seek(0) reader = csv.reader(csvfile, delimiter=" ") include_cols = [1, 2, 6, 7] voor rij in lezer: inhoud = lijst (rij [i] voor i in include_cols) print inhoud
en ik verwacht dat dit alleen de specifieke kolommen zal afdrukken die ik voor elke rij wil, behalve dat doet het niet, ik krijg alleen de laatste kolom.