[Python-checkins] python/nondist/sandbox/csv csv.py,1.26,1.27

montanaro@users.sourceforge.net montanaro@users.sourceforge.net
2003年2月10日 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
 

AltStyle によって変換されたページ (->オリジナル) /