Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #54656

Re: What's the best way to extract 2 values from a CSV file from each row systematically?

Date 2013-09-23 12:47 -0500
From Tim Chase <python.list@tim.thechases.com>
Subject Re: What's the best way to extract 2 values from a CSV file from each row systematically?
References <fbfc360b-0553-4203-b89a-80b4c4036aec@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.276.1379958332.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 2013-09-23 10:10, quarantinemiles@gmail.com wrote:
> based on two values I want to extract from a CSV file. The
> CSV has at least 1000 rows, an example:
> 
> 0,0,KGD,0,DME,0,,0,0
[snip]
> I'd like to automatically go through each row in the CSV file from
> beginning to end to extract the two values in columns 3 and 5 and
> insert them into fields in a form.

The csv module has several tools that make this easy to do.  If there
are column-headers, you can do

  import csv
  with file("myfile.csv", "rb") as f:
    for row in csv.DictReader(f)
      insert_fields_into_form(
        row["KGD"],
        row["DME"],
        )

which I like for clarity, ease of updating, and robustness (if for
some reason, the columns get moved around, or columns get
added/removed, as long as the headers remain the same, you can get
the data).

If it doesn't have headers, then you'd have to manually pick out the
columns, either by tuple-unpacking:

  with file("myfile.csv", "rb") as f:
    for _, _, kgd, _, dme in csv.reader(f)
      insert_fields_into_form(kgd, dme)

or by directly indexing:

  KGD_COL = 3
  DME_COL = 5
  with file("myfile.csv", "rb") as f:
    for row in csv.reader(f)
      insert_fields_into_form(
        row[KGD_COL],
        row[DME_COL],
        )

both of which are more fragile than DictReader when it comes to
columns being added/removed.  I leave the implementation of
insert_fields_into_form() up to you :-)

-tkc




Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

What's the best way to extract 2 values from a CSV file from each row systematically? quarantinemiles@gmail.com - 2013-09-23 10:10 -0700
  Re: What's the best way to extract 2 values from a CSV file from each row systematically? Neil Cerutti <neilc@norwich.edu> - 2013-09-23 17:20 +0000
  Re: What's the best way to extract 2 values from a CSV file from each row systematically? Joel Goldstick <joel.goldstick@gmail.com> - 2013-09-23 13:25 -0400
  Re: What's the best way to extract 2 values from a CSV file from each row systematically? Tim Chase <python.list@tim.thechases.com> - 2013-09-23 12:47 -0500
    Re: What's the best way to extract 2 values from a CSV file from each row systematically? Alex Lee <quarantinemiles@gmail.com> - 2013-09-24 07:04 -0700
      Re: What's the best way to extract 2 values from a CSV file from each row systematically? Roland Mueller <roland.em0001@googlemail.com> - 2013-09-27 12:22 +0300
  Re: What's the best way to extract 2 values from a CSV file from each row systematically? Luca Cerone <luca.cerone@gmail.com> - 2013-09-28 03:21 -0700

csiph-web