T
Tino Lange
Hi!
I'm trying to use the csv Parser included with Python. Field Delimiter is
"|", Line Delimiter is "#". Unfortunately it doesn't work as expected. The
parser seems to just ignore the 'lineterminator'?
Here's some example:
I would have been expecting that the parser returns three lines, i. e.
Any hints what I'm doing wrong here?
Thanks
Tino
I'm trying to use the csv Parser included with Python. Field Delimiter is
"|", Line Delimiter is "#". Unfortunately it doesn't work as expected. The
parser seems to just ignore the 'lineterminator'?
Here's some example:
$ cat test.py
#! /usr/bin/env python
import sys, csv, cStringIO
class SpecialCSVDialect(csv.Dialect):
delimiter = '|'
lineterminator = '#'
quotechar = '"'
doublequote = True
skipinitialspace = False
quoting = csv.QUOTE_MINIMAL
csv.register_dialect("SpecialCSV", SpecialCSVDialect)
memfile = cStringIO.StringIO("1a|1b|1c|1d#2a|2b|2c|2d#3a|3b|3c|3d#")
cfile = csv.reader(memfile, dialect="SpecialCSV")
while 1:
try:
data = cfile.next()
except csv.Error, (errmsg):
print >> sys.stderr, "SpecialCSVError '%s' - aborting...!" % (errmsg)
sys.exit()
except StopIteration:
break
print data
$ ./test.py
['1a', '1b', '1c', '1d#2a', '2b', '2c', '2d#3a', '3b', '3c', '3d#']
$
I would have been expecting that the parser returns three lines, i. e.
['1a', '1b', '1c', '1d']
['2a', '2b', '2c', '2d']
['3a', '3b', '3c', '3d']
Any hints what I'm doing wrong here?
Thanks
Tino