Python's CSV reader

Peter Otten __peter__ at web.de
Mon Aug 8 03:28:03 EDT 2005


Stephan wrote:

> DictReader field names on the fly.  Here is a rudimentary example of my
> working code and the data it can parse.
> 
> -------------------------------------
> John|Smith
> Beef|Potatos|Dinner Roll|Ice Cream
> Susan|Jones
> Chicken|Peas|Biscuits|Cake
> Roger|Miller
> Pork|Salad|Muffin|Cookies
> -------------------------------------

That sample data would have been valuable information in your original post.
Here's what becomes of your code if you apply the "zip trick" from my first
post (yes, I am sometimes stubborn):

import itertools
import csv

HeaderFields = ["First Name", "Last Name"]
DetailFields = ["Entree", "Side Dish", "Starch", "Desert"]

instream = open("testdata.txt")

heads = csv.DictReader(instream, HeaderFields, delimiter="|")
details = csv.DictReader(instream, DetailFields, delimiter="|")

for header, detail in itertools.izip(heads, details):
    print "Header (%d fields): %s" % (len(header), header)
    print "Detail (%d fields): %s" % (len(detail), detail)

Peter




More information about the Python-list mailing list