Project

General

Profile

« Previous | Next » 

Revision 5593

csvs.py: Added RowNumFilter, which adds a row # column at the beginning of each row

View differences:

lib/csvs.py
4 4
import _csv
5 5
import StringIO
6 6

  
7
import streams
7 8
import strings
8 9
import util
9 10

  
......
159 160
        try: return self.reader.next()
160 161
        except StopIteration: return '' # EOF
161 162

  
163
class RowNumFilter(Filter):
164
    '''Adds a row # column at the beginning of each row'''
165
    def __init__(self, reader):
166
        def filter_(row): return [self.reader.line_num]+row
167
        Filter.__init__(self, filter_,
168
            streams.LineCountInputStream(StreamFilter(reader)))
169

  
162 170
class InputRewriter(StreamFilter):
163 171
    '''Wraps a reader, writing each row back to CSV'''
164 172
    def __init__(self, reader, dialect=csv.excel):

Also available in: Unified diff