147 lines · 5.6 KB · TeX
RawDownload
\section{\module{binascii} ---         Convert between binary and \ASCII} \declaremodule{builtin}{binascii}\modulesynopsis{Tools for converting between binary and various                \ASCII-encoded binary representations.}  The \module{binascii} module contains a number of methods to convertbetween binary and various \ASCII-encoded binaryrepresentations. Normally, you will not use these functions directlybut use wrapper modules like \refmodule{uu}\refstmodindex{uu},\refmodule{base64}\refstmodindex{base64}, or\refmodule{binhex}\refstmodindex{binhex} instead. The \module{binascii} modulecontains low-level functions written in C for greater speedthat are used by the higher-level modules. The \module{binascii} module defines the following functions: \begin{funcdesc}{a2b_uu}{string}Convert a single line of uuencoded data back to binary and return thebinary data. Lines normally contain 45 (binary) bytes, except for thelast line. Line data may be followed by whitespace.\end{funcdesc} \begin{funcdesc}{b2a_uu}{data}Convert binary data to a line of \ASCII{} characters, the return valueis the converted line, including a newline char. The length of\var{data} should be at most 45.\end{funcdesc} \begin{funcdesc}{a2b_base64}{string}Convert a block of base64 data back to binary and return thebinary data. More than one line may be passed at a time.\end{funcdesc} \begin{funcdesc}{b2a_base64}{data}Convert binary data to a line of \ASCII{} characters in base64 coding.The return value is the converted line, including a newline char.The length of \var{data} should be at most 57 to adhere to the base64standard.\end{funcdesc} \begin{funcdesc}{a2b_qp}{string\optional{, header}}Convert a block of quoted-printable data back to binary and return thebinary data. More than one line may be passed at a time.If the optional argument \var{header} is present and true, underscoreswill be decoded as spaces.\end{funcdesc} \begin{funcdesc}{b2a_qp}{data\optional{, quotetabs, istext, header}}Convert binary data to a line(s) of \ASCII{} characters inquoted-printable encoding.  The return value is the converted line(s).If the optional argument \var{quotetabs} is present and true, all tabsand spaces will be encoded.  If the optional argument \var{istext} is present and true,newlines are not encoded but trailing whitespace will be encoded.If the optional argument \var{header} ispresent and true, spaces will be encoded as underscores per RFC1522.If the optional argument \var{header} is present and false, newlinecharacters will be encoded as well; otherwise linefeed conversion mightcorrupt the binary data stream.\end{funcdesc} \begin{funcdesc}{a2b_hqx}{string}Convert binhex4 formatted \ASCII{} data to binary, without doingRLE-decompression. The string should contain a complete number ofbinary bytes, or (in case of the last portion of the binhex4 data)have the remaining bits zero.\end{funcdesc} \begin{funcdesc}{rledecode_hqx}{data}Perform RLE-decompression on the data, as per the binhex4standard. The algorithm uses \code{0x90} after a byte as a repeatindicator, followed by a count. A count of \code{0} specifies a bytevalue of \code{0x90}. The routine returns the decompressed data,unless data input data ends in an orphaned repeat indicator, in whichcase the \exception{Incomplete} exception is raised.\end{funcdesc} \begin{funcdesc}{rlecode_hqx}{data}Perform binhex4 style RLE-compression on \var{data} and return theresult.\end{funcdesc} \begin{funcdesc}{b2a_hqx}{data}Perform hexbin4 binary-to-\ASCII{} translation and return theresulting string. The argument should already be RLE-coded, and have alength divisible by 3 (except possibly the last fragment).\end{funcdesc} \begin{funcdesc}{crc_hqx}{data, crc}Compute the binhex4 crc value of \var{data}, starting with an initial\var{crc} and returning the result.\end{funcdesc} \begin{funcdesc}{crc32}{data\optional{, crc}}Compute CRC-32, the 32-bit checksum of data, starting with an initialcrc.  This is consistent with the ZIP file checksum.  Since thealgorithm is designed for use as a checksum algorithm, it is notsuitable for use as a general hash algorithm.  Use as follows:\begin{verbatim}    print binascii.crc32("hello world")    # Or, in two pieces:    crc = binascii.crc32("hello")    crc = binascii.crc32(" world", crc)    print crc\end{verbatim}\end{funcdesc} \begin{funcdesc}{b2a_hex}{data}\funcline{hexlify}{data}Return the hexadecimal representation of the binary \var{data}.  Everybyte of \var{data} is converted into the corresponding 2-digit hexrepresentation.  The resulting string is therefore twice as long asthe length of \var{data}.\end{funcdesc} \begin{funcdesc}{a2b_hex}{hexstr}\funcline{unhexlify}{hexstr}Return the binary data represented by the hexadecimal string\var{hexstr}.  This function is the inverse of \function{b2a_hex()}.\var{hexstr} must contain an even number of hexadecimal digits (whichcan be upper or lower case), otherwise a \exception{TypeError} israised.\end{funcdesc} \begin{excdesc}{Error}Exception raised on errors. These are usually programming errors.\end{excdesc} \begin{excdesc}{Incomplete}Exception raised on incomplete data. These are usually not programmingerrors, but may be handled by reading a little more data and tryingagain.\end{excdesc}  \begin{seealso}  \seemodule{base64}{Support for base64 encoding used in MIME email messages.}   \seemodule{binhex}{Support for the binhex format used on the Macintosh.}   \seemodule{uu}{Support for UU encoding used on \UNIX.}   \seemodule{quopri}{Support for quoted-printable encoding used in MIME email messages. }\end{seealso}