#5975: add unix_dialect to csv module.
This commit is contained in:
parent
347fe5ce3c
commit
7424dd359c
|
@ -187,6 +187,15 @@ The :mod:`csv` module defines the following classes:
|
|||
TAB-delimited file. It is registered with the dialect name ``'excel-tab'``.
|
||||
|
||||
|
||||
.. class:: unix_dialect()
|
||||
|
||||
The :class:`unix_dialect` class defines the usual properties of a CSV file
|
||||
generated on UNIX systems, i.e. using ``'\n'`` as line terminator and quoting
|
||||
all fields. It is registered with the dialect name ``'unix'``.
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
|
||||
.. class:: Sniffer()
|
||||
|
||||
The :class:`Sniffer` class is used to deduce the format of a CSV file.
|
||||
|
|
12
Lib/csv.py
12
Lib/csv.py
|
@ -20,7 +20,7 @@ __all__ = [ "QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE",
|
|||
"unregister_dialect", "__version__", "DictReader", "DictWriter" ]
|
||||
|
||||
class Dialect:
|
||||
"""Describe an Excel dialect.
|
||||
"""Describe a CSV dialect.
|
||||
|
||||
This must be subclassed (see csv.excel). Valid attributes are:
|
||||
delimiter, quotechar, escapechar, doublequote, skipinitialspace,
|
||||
|
@ -65,6 +65,16 @@ class excel_tab(excel):
|
|||
delimiter = '\t'
|
||||
register_dialect("excel-tab", excel_tab)
|
||||
|
||||
class unix_dialect(Dialect):
|
||||
"""Describe the usual properties of Unix-generated CSV files."""
|
||||
delimiter = ','
|
||||
quotechar = '"'
|
||||
doublequote = True
|
||||
skipinitialspace = False
|
||||
lineterminator = '\n'
|
||||
quoting = QUOTE_ALL
|
||||
register_dialect("unix", unix_dialect)
|
||||
|
||||
|
||||
class DictReader:
|
||||
def __init__(self, f, fieldnames=None, restkey=None, restval=None,
|
||||
|
|
|
@ -515,6 +515,15 @@ class TestEscapedExcel(TestCsvBase):
|
|||
def test_read_escape_fieldsep(self):
|
||||
self.readerAssertEqual('abc\\,def\r\n', [['abc,def']])
|
||||
|
||||
class TestDialectUnix(TestCsvBase):
|
||||
dialect = 'unix'
|
||||
|
||||
def test_simple_writer(self):
|
||||
self.writerAssertEqual([[1, 'abc def', 'abc']], '"1","abc def","abc"\n')
|
||||
|
||||
def test_simple_reader(self):
|
||||
self.readerAssertEqual('"1","abc def","abc"\n', [['1', 'abc def', 'abc']])
|
||||
|
||||
class QuotedEscapedExcel(csv.excel):
|
||||
quoting = csv.QUOTE_NONNUMERIC
|
||||
escapechar = '\\'
|
||||
|
|
|
@ -51,7 +51,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- #7761: telnetlib.interact failures on Windows fixed.
|
||||
- Issue #5975: Add csv.unix_dialect class.
|
||||
|
||||
- Issue #7761: telnetlib.interact failures on Windows fixed.
|
||||
|
||||
- logging: Added style option to Formatter to allow %, {} or $-formatting.
|
||||
|
||||
|
|
Loading…
Reference in New Issue