[Python-checkins] python/nondist/sandbox/csv csv.py,1.22,1.23
montanaro@users.sourceforge.net
montanaro@users.sourceforge.net
Wed, 05 Feb 2003 20:49:31 -0800
Update of /cvsroot/python/python/nondist/sandbox/csv
In directory sc8-pr-cvs1:/tmp/cvs-serv29808
Modified Files:
csv.py
Log Message:
add optional fieldnames and restfield params to csv.reader() which allow the
reader to return rows as dicts
Index: csv.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/csv/csv.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** csv.py 5 Feb 2003 02:21:42 -0000 1.22
--- csv.py 6 Feb 2003 04:49:29 -0000 1.23
***************
*** 94,99 ****
class reader(_OCcsv):
! def __init__(self, iterobj, dialect = 'excel', **options):
self.iterobj = iter(iterobj)
_OCcsv.__init__(self, dialect, **options)
--- 94,103 ----
class reader(_OCcsv):
! def __init__(self, iterobj, dialect = 'excel',
! fieldnames=None, restfield=None,
! **options):
self.iterobj = iter(iterobj)
+ self.fieldnames = fieldnames
+ self.restfield = restfield
_OCcsv.__init__(self, dialect, **options)
***************
*** 105,108 ****
--- 109,119 ----
fields = self.parser.parse(self.iterobj.next())
if fields:
+ if self.fieldnames is not None:
+ lf = len(self.fieldnames)
+ result = dict(zip(self.fieldnames, fields))
+ if (lf < len(fields) and
+ self.restfield is not None):
+ result[self.restfield] = fields[lf:]
+ return result
return fields