mirror of
https://github.com/python/cpython.git
synced 2025-11-02 11:08:57 +00:00
* minor tweaks relating to the package nature of the beast
* added an (incomplete) description of the utils.Sniffer class
This commit is contained in:
parent
50889239c3
commit
3bd3c8403a
1 changed files with 32 additions and 8 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
\declaremodule{standard}{csv}
|
\declaremodule{standard}{csv}
|
||||||
\modulesynopsis{Write and read tabular data to and from delimited files.}
|
\modulesynopsis{Write and read tabular data to and from delimited files.}
|
||||||
|
\sectionauthor{Skip Montanaro}{skip@pobox.com}
|
||||||
|
|
||||||
\versionadded{2.3}
|
\versionadded{2.3}
|
||||||
\index{csv}
|
\index{csv}
|
||||||
|
|
@ -18,21 +19,21 @@ vary, the overall format is similar enough that it is possible to write a
|
||||||
single module which can efficiently manipulate such data, hiding the details
|
single module which can efficiently manipulate such data, hiding the details
|
||||||
of reading and writing the data from the programmer.
|
of reading and writing the data from the programmer.
|
||||||
|
|
||||||
The \module{csv} module implements classes to read and write tabular data in
|
The \module{csv} package implements classes to read and write tabular data in
|
||||||
CSV format. It allows programmers to say, ``write this data in the format
|
CSV format. It allows programmers to say, ``write this data in the format
|
||||||
preferred by Excel,'' or ``read data from this file which was generated by
|
preferred by Excel,'' or ``read data from this file which was generated by
|
||||||
Excel,'' without knowing the precise details of the CSV format used by
|
Excel,'' without knowing the precise details of the CSV format used by
|
||||||
Excel. Programmers can also describe the CSV formats understood by other
|
Excel. Programmers can also describe the CSV formats understood by other
|
||||||
applications or define their own special-purpose CSV formats.
|
applications or define their own special-purpose CSV formats.
|
||||||
|
|
||||||
The \module{csv} module's \class{reader} and \class{writer} objects read and
|
The \module{csv} package's \class{reader} and \class{writer} objects read and
|
||||||
write sequences. Programmers can also read and write data in dictionary
|
write sequences. Programmers can also read and write data in dictionary
|
||||||
form using the \class{DictReader} and \class{DictWriter} classes.
|
form using the \class{DictReader} and \class{DictWriter} classes.
|
||||||
|
|
||||||
\note{The first version of the \module{csv} module doesn't support Unicode
|
\note{The first version of the \module{csv} package doesn't support Unicode
|
||||||
input. Also, there are currently some issues regarding \ASCII{} NUL
|
input. Also, there are currently some issues regarding \ASCII{} NUL
|
||||||
characters. Accordingly, all input should generally be plain \ASCII{} to be
|
characters. Accordingly, all input should generally be printable \ASCII{}
|
||||||
safe. These restrictions will be removed in the future.}
|
to be safe. These restrictions will be removed in the future.}
|
||||||
|
|
||||||
\begin{seealso}
|
\begin{seealso}
|
||||||
% \seemodule{array}{Arrays of uniformly types numeric values.}
|
% \seemodule{array}{Arrays of uniformly types numeric values.}
|
||||||
|
|
@ -42,10 +43,10 @@ safe. These restrictions will be removed in the future.}
|
||||||
\end{seealso}
|
\end{seealso}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Module Contents}
|
\subsection{Package Contents}
|
||||||
|
|
||||||
|
|
||||||
The \module{csv} module defines the following functions:
|
The \module{csv} package defines the following functions:
|
||||||
|
|
||||||
\begin{funcdesc}{reader}{csvfile\optional{,
|
\begin{funcdesc}{reader}{csvfile\optional{,
|
||||||
dialect=\code{'excel'}\optional{, fmtparam}}}
|
dialect=\code{'excel'}\optional{, fmtparam}}}
|
||||||
|
|
@ -108,7 +109,7 @@ Return the names of all registered dialects.
|
||||||
\end{funcdesc}
|
\end{funcdesc}
|
||||||
|
|
||||||
|
|
||||||
The \module{csv} module defines the following classes:
|
The \module{csv} package defines the following classes:
|
||||||
|
|
||||||
\begin{classdesc}{DictReader}{csvfile, fieldnames\optional{,
|
\begin{classdesc}{DictReader}{csvfile, fieldnames\optional{,
|
||||||
restkey=\code{None}\optional{,
|
restkey=\code{None}\optional{,
|
||||||
|
|
@ -262,11 +263,33 @@ according to the current dialect.
|
||||||
\end{methoddesc}
|
\end{methoddesc}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Submodule \code{utils}}
|
||||||
|
|
||||||
|
The \module{csv} package contains a \module{utils} submodule which defines
|
||||||
|
the following class.
|
||||||
|
|
||||||
|
\begin{classdesc}{Sniffer}{\optional{sample=16384}}
|
||||||
|
|
||||||
|
The \class{Sniffer} class is used to deduce the format of a CSV file. The
|
||||||
|
optional \var{sample} argument to the constructor specifies the number of
|
||||||
|
bytes to use when determining Dialect parameters.
|
||||||
|
|
||||||
|
\begin{methoddesc}{sniff}{fileobj}
|
||||||
|
Analyze the next chunk of \var{fileobj} and return a \class{Dialect} class
|
||||||
|
reflecting the parameters found.
|
||||||
|
\end{methoddesc}
|
||||||
|
|
||||||
|
\begin{methoddesc}
|
||||||
|
|
||||||
|
\end{methoddesc}
|
||||||
|
\end{classdesc}
|
||||||
|
|
||||||
\subsection{Examples}
|
\subsection{Examples}
|
||||||
|
|
||||||
The ``Hello, world'' of csv reading is
|
The ``Hello, world'' of csv reading is
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
|
import csv
|
||||||
reader = csv.reader(file("some.csv"))
|
reader = csv.reader(file("some.csv"))
|
||||||
for row in reader:
|
for row in reader:
|
||||||
print row
|
print row
|
||||||
|
|
@ -275,6 +298,7 @@ The ``Hello, world'' of csv reading is
|
||||||
The corresponding simplest possible writing example is
|
The corresponding simplest possible writing example is
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
|
import csv
|
||||||
writer = csv.writer(file("some.csv", "w"))
|
writer = csv.writer(file("some.csv", "w"))
|
||||||
for row in someiterable:
|
for row in someiterable:
|
||||||
writer.writerow(row)
|
writer.writerow(row)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue