Revision 5593
Added by Aaron Marcuse-Kubitza over 12 years ago
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
csvs.py: Added RowNumFilter, which adds a row # column at the beginning of each row