Revision 1442
Added by Aaron Marcuse-Kubitza almost 13 years ago
lib/csvs.py | ||
---|---|---|
3 | 3 |
import csv |
4 | 4 |
import StringIO |
5 | 5 |
|
6 |
delimiters = ',\t`' |
|
7 |
|
|
6 | 8 |
def reader_and_header(stream): |
7 | 9 |
'''Automatically detects the dialect based on the header line |
8 | 10 |
@return tuple (reader, header)''' |
9 | 11 |
header_line = stream.readline() |
10 |
dialect = csv.Sniffer().sniff(header_line) |
|
12 |
sniffer = csv.Sniffer() |
|
13 |
dialect = sniffer.sniff(header_line, delimiters) |
|
11 | 14 |
dialect.doublequote = True # Sniffer doesn't turn this on by default |
12 | 15 |
header = csv.reader(StringIO.StringIO(header_line), dialect).next() |
13 | 16 |
return (csv.reader(stream, dialect), header) |
Also available in: Unified diff
csvs.py: reader_and_header(): Restrict delimiters to common delimiters so that e.g. letters are not considered delimiters just because they appear frequently