<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel=
"STYLESHEET" href=
"lib.css" type='text/css'
/>
<link rel=
"SHORTCUT ICON" href=
"../icons/pyfav.png" type=
"image/png" />
<link rel='start' href='../index.html' title='Python Documentation Index'
/>
<link rel=
"first" href=
"lib.html" title='Python Library Reference'
/>
<link rel='contents' href='contents.html'
title=
"Contents" />
<link rel='index' href='genindex.html' title='Index'
/>
<link rel='last' href='about.html' title='About this document...'
/>
<link rel='help' href='about.html' title='About this document...'
/>
<link rel=
"prev" href=
"stream-reader-writer.html" />
<link rel=
"parent" href=
"node130.html" />
<link rel=
"next" href=
"standard-encodings.html" />
<meta name='aesop' content='information'
/>
<title>4.9.1.5 StreamRecoder Objects
</title>
<div id='top-navigation-panel' xml:id='top-navigation-panel'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"4.9.1.4 StreamReaderWriter Objects"
href=
"stream-reader-writer.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"4.9.1 Codec Base Classes"
href=
"node130.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"4.9.2 Standard Encodings"
href=
"standard-encodings.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"stream-reader-writer.html">4.9.1.4 StreamReaderWriter Objects
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"node130.html">4.9.1 Codec Base Classes
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"standard-encodings.html">4.9.2 Standard Encodings
</A>
<!--End of Navigation Panel-->
<H3><A NAME=
"SECTION006915000000000000000"></A><A NAME=
"stream-recoder-objects"></A>
4.9.1.5 StreamRecoder Objects
The
<tt class=
"class">StreamRecoder
</tt> provide a frontend - backend view of
encoding data which is sometimes useful when dealing with different
The design is such that one can use the factory functions returned by
the
<tt class=
"function">lookup()
</tt> function to construct the instance.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><span class=
"typelabel">class
</span> <tt id='l2h-
1017' xml:id='l2h-
1017'
class=
"class">StreamRecoder
</tt></b>(
</nobr></td>
<td><var>stream, encode, decode,
Reader, Writer, errors
</var>)
</td></tr></table></dt>
Creates a
<tt class=
"class">StreamRecoder
</tt> instance which implements a two-way
conversion:
<var>encode
</var> and
<var>decode
</var> work on the frontend (the
input to
<tt class=
"method">read()
</tt> and output of
<tt class=
"method">write()
</tt>) while
<var>Reader
</var> and
<var>Writer
</var> work on the backend (reading and
You can use these objects to do transparent direct recodings from
e.g. Latin-
1 to UTF-
8 and back.
<var>stream
</var> must be a file-like object.
<var>encode
</var>,
<var>decode
</var> must adhere to the
<tt class=
"class">Codec
</tt>
interface,
<var>Reader
</var>,
<var>Writer
</var> must be factory functions or
classes providing objects of the
<tt class=
"class">StreamReader
</tt> and
<tt class=
"class">StreamWriter
</tt> interface respectively.
<var>encode
</var> and
<var>decode
</var> are needed for the frontend
translation,
<var>Reader
</var> and
<var>Writer
</var> for the backend
translation. The intermediate format used is determined by the two
sets of codecs, e.g. the Unicode codecs will use Unicode as
Error handling is done in the same way as defined for the
stream readers and writers.
<tt class=
"class">StreamRecoder
</tt> instances define the combined interfaces of
<tt class=
"class">StreamReader
</tt> and
<tt class=
"class">StreamWriter
</tt> classes. They inherit
all other methods and attribute from the underlying stream.
<div class='online-navigation'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"4.9.1.4 StreamReaderWriter Objects"
href=
"stream-reader-writer.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"4.9.1 Codec Base Classes"
href=
"node130.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"4.9.2 Standard Encodings"
href=
"standard-encodings.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"stream-reader-writer.html">4.9.1.4 StreamReaderWriter Objects
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"node130.html">4.9.1 Codec Base Classes
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"standard-encodings.html">4.9.2 Standard Encodings
</A>
<span class=
"release-info">Release
2.4.2, documentation updated on
28 September
2005.
</span>
<!--End of Navigation Panel-->
See
<i><a href=
"about.html">About this document...
</a></i> for information on suggesting changes.