Fix parsing of csv files with escapes (escape character previously would be
left in stream).
This commit is contained in:
parent
41e4faa82b
commit
36a7691c2d
|
@ -227,10 +227,10 @@ class Test_Csv(unittest.TestCase):
|
|||
self.assertRaises(csv.Error, self._read_test, ['a,b\r\nc,d'], [])
|
||||
|
||||
def test_read_escape(self):
|
||||
self._read_test(['a,\\b,c'], [['a', '\\b', 'c']], escapechar='\\')
|
||||
self._read_test(['a,\\b,c'], [['a', 'b', 'c']], escapechar='\\')
|
||||
self._read_test(['a,b\\,c'], [['a', 'b,c']], escapechar='\\')
|
||||
self._read_test(['a,"b\\,c"'], [['a', 'b,c']], escapechar='\\')
|
||||
self._read_test(['a,"b,\\c"'], [['a', 'b,\\c']], escapechar='\\')
|
||||
self._read_test(['a,"b,\\c"'], [['a', 'b,c']], escapechar='\\')
|
||||
self._read_test(['a,"b,c\\""'], [['a', 'b,c"']], escapechar='\\')
|
||||
self._read_test(['a,"b,c"\\'], [['a', 'b,c\\']], escapechar='\\')
|
||||
|
||||
|
|
|
@ -584,10 +584,6 @@ parse_process_char(ReaderObj *self, char c)
|
|||
break;
|
||||
|
||||
case ESCAPED_CHAR:
|
||||
if (c != dialect->escapechar &&
|
||||
c != dialect->delimiter &&
|
||||
c != dialect->quotechar)
|
||||
parse_add_char(self, dialect->escapechar);
|
||||
parse_add_char(self, c);
|
||||
self->state = IN_FIELD;
|
||||
break;
|
||||
|
@ -642,10 +638,6 @@ parse_process_char(ReaderObj *self, char c)
|
|||
break;
|
||||
|
||||
case ESCAPE_IN_QUOTED_FIELD:
|
||||
if (c != dialect->escapechar &&
|
||||
c != dialect->delimiter &&
|
||||
c != dialect->quotechar)
|
||||
parse_add_char(self, dialect->escapechar);
|
||||
parse_add_char(self, c);
|
||||
self->state = IN_QUOTED_FIELD;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue