Mercurial > cpython-lru_cache-weakref
annotate Doc/lib/libstringio.tex @ 39587:bbef2ecdee33 2.4
Patch #1540329: _hotshot.c fix backports.
| author | Georg Brandl <georg@python.org> |
|---|---|
| date | Sat, 19 Aug 2006 07:48:06 +0000 |
| parents | dad2b6204974 |
| children | 61c0fe48376a |
| rev | line source |
|---|---|
| 8918 | 1 \section{\module{StringIO} --- |
| 10661 | 2 Read and write strings as files} |
| 3 | |
|
8730
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
4 \declaremodule{standard}{StringIO} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
5 \modulesynopsis{Read and write strings as if they were files.} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
6 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
7 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
8 This module implements a file-like class, \class{StringIO}, |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
9 that reads and writes a string buffer (also known as \emph{memory |
|
15443
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
10 files}). See the description of file objects for operations (section |
| 10661 | 11 \ref{bltin-file-objects}). |
|
8730
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
12 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
13 \begin{classdesc}{StringIO}{\optional{buffer}} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
14 When a \class{StringIO} object is created, it can be initialized |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
15 to an existing string by passing the string to the constructor. |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
16 If no string is given, the \class{StringIO} will start empty. |
|
34900
dad2b6204974
SF bug #1180392: StringIO's docs should mention overwriting of initial value
Raymond Hettinger <python@rcn.com>
parents:
31363
diff
changeset
|
17 In both cases, the initial file position starts at zero. |
|
15443
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
18 |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
19 The \class{StringIO} object can accept either Unicode or 8-bit |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
20 strings, but mixing the two may take some care. If both are used, |
|
18416
33b4357aebb8
Fix up a few style nits -- avoid "e.g." and "i.e." -- these make
Fred Drake <fdrake@acm.org>
parents:
15443
diff
changeset
|
21 8-bit strings that cannot be interpreted as 7-bit \ASCII{} (that |
|
15443
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
22 use the 8th bit) will cause a \exception{UnicodeError} to be raised |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
23 when \method{getvalue()} is called. |
|
8730
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
24 \end{classdesc} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
25 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
26 The following methods of \class{StringIO} objects require special |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
27 mention: |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
28 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
29 \begin{methoddesc}{getvalue}{} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
30 Retrieve the entire contents of the ``file'' at any time before the |
|
15443
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
31 \class{StringIO} object's \method{close()} method is called. See the |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
32 note above for information about mixing Unicode and 8-bit strings; |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
33 such mixing can cause this method to raise \exception{UnicodeError}. |
|
8730
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
34 \end{methoddesc} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
35 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
36 \begin{methoddesc}{close}{} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
37 Free the memory buffer. |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
38 \end{methoddesc} |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
39 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
40 |
| 8918 | 41 \section{\module{cStringIO} --- |
| 10661 | 42 Faster version of \module{StringIO}} |
|
10240
359244fa6b52
Use current approach to record documentation author.
Fred Drake <fdrake@acm.org>
parents:
8918
diff
changeset
|
43 |
|
8730
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
44 \declaremodule{builtin}{cStringIO} |
| 10661 | 45 \modulesynopsis{Faster version of \module{StringIO}, but not |
| 46 subclassable.} | |
|
31363
f7a05ab50d3b
Fix some digicool addresses I noticed
Andrew M. Kuchling <amk@amk.ca>
parents:
30127
diff
changeset
|
47 \moduleauthor{Jim Fulton}{jim@zope.com} |
|
10240
359244fa6b52
Use current approach to record documentation author.
Fred Drake <fdrake@acm.org>
parents:
8918
diff
changeset
|
48 \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} |
|
8730
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
49 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
50 The module \module{cStringIO} provides an interface similar to that of |
| 10661 | 51 the \refmodule{StringIO} module. Heavy use of \class{StringIO.StringIO} |
|
8730
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
52 objects can be made more efficient by using the function |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
53 \function{StringIO()} from this module instead. |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
54 |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
55 Since this module provides a factory function which returns objects of |
|
8a306dfd9f33
Move files around to get the names to match the module names except for
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
56 built-in types, there's no way to build your own version using |
| 10661 | 57 subclassing. Use the original \refmodule{StringIO} module in that case. |
| 58 | |
|
15443
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
59 Unlike the memory files implemented by the \refmodule{StringIO} |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
60 module, those provided by this module are not able to accept Unicode |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
61 strings that cannot be encoded as plain \ASCII{} strings. |
|
68de9185b41e
Added information on the use of Unicode with the StringIO and cStringIO
Fred Drake <fdrake@acm.org>
parents:
10661
diff
changeset
|
62 |
|
27546
bd63f28ce7a8
SF bug #671447: StringIO doc doesn't say it's sometimes read-only.
Raymond Hettinger <python@rcn.com>
parents:
18416
diff
changeset
|
63 Another difference from the \refmodule{StringIO} module is that calling |
|
bd63f28ce7a8
SF bug #671447: StringIO doc doesn't say it's sometimes read-only.
Raymond Hettinger <python@rcn.com>
parents:
18416
diff
changeset
|
64 \function{StringIO()} with a string parameter creates a read-only object. |
|
bd63f28ce7a8
SF bug #671447: StringIO doc doesn't say it's sometimes read-only.
Raymond Hettinger <python@rcn.com>
parents:
18416
diff
changeset
|
65 Unlike an object created without a string parameter, it does not have |
|
30127
2c6f92cddbad
add a statement identifying StringI and StringO objects.
Skip Montanaro <skip@pobox.com>
parents:
27546
diff
changeset
|
66 write methods. These objects are not generally visible. They turn up in |
|
2c6f92cddbad
add a statement identifying StringI and StringO objects.
Skip Montanaro <skip@pobox.com>
parents:
27546
diff
changeset
|
67 tracebacks as \class{StringI} and \class{StringO}. |
|
27546
bd63f28ce7a8
SF bug #671447: StringIO doc doesn't say it's sometimes read-only.
Raymond Hettinger <python@rcn.com>
parents:
18416
diff
changeset
|
68 |
| 10661 | 69 The following data objects are provided as well: |
| 70 | |
| 71 | |
| 72 \begin{datadesc}{InputType} | |
| 73 The type object of the objects created by calling | |
| 74 \function{StringIO} with a string parameter. | |
| 75 \end{datadesc} | |
| 76 | |
| 77 \begin{datadesc}{OutputType} | |
| 78 The type object of the objects returned by calling | |
| 79 \function{StringIO} with no parameters. | |
| 80 \end{datadesc} | |
| 81 | |
| 82 | |
| 83 There is a C API to the module as well; refer to the module source for | |
| 84 more information. |
