[Python-checkins] python/nondist/sandbox/csv csv.py,1.26,1.27
montanaro@users.sourceforge.net
montanaro@users.sourceforge.net
Mon, 10 Feb 2003 07:06:49 -0800
Update of /cvsroot/python/python/nondist/sandbox/csv
In directory sc8-pr-cvs1:/tmp/cvs-serv14215
Modified Files:
csv.py
Log Message:
add default value for short rows (#fieldnames > len(row))
Index: csv.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/csv/csv.py,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** csv.py 10 Feb 2003 03:47:21 -0000 1.26
--- csv.py 10 Feb 2003 15:06:46 -0000 1.27
***************
*** 59,65 ****
class DictReader:
! def __init__(self, f, fieldnames, rest=None, dialect="excel", *args):
self.fieldnames = fieldnames # list of keys for the dict
self.rest = rest # key to catch long rows
self.reader = reader(f, dialect, *args)
--- 59,67 ----
class DictReader:
! def __init__(self, f, fieldnames, rest=None, restval=None,
! dialect="excel", *args):
self.fieldnames = fieldnames # list of keys for the dict
self.rest = rest # key to catch long rows
+ self.restval = restval # default value for short rows
self.reader = reader(f, dialect, *args)
***************
*** 67,72 ****
row = self.reader.next()
d = dict(zip(self.fieldnames, row))
! if len(self.fieldnames) < len(row) and self.rest != None:
! d[self.rest] = row[len(self.fieldnames):]
return d
--- 69,79 ----
row = self.reader.next()
d = dict(zip(self.fieldnames, row))
! lf = len(self.fieldnames)
! lr = len(row)
! if lf < lr and self.rest != None:
! d[self.rest] = row[lf:]
! elif lf > lr:
! for key in self.fieldnames[lr:]:
! d[key] = self.restval
return d