Python 標準函式庫 (Standard Library)
************************************

The Python Language Reference 說明 Python 這門語言確切的文法及語意，而
這份函式庫參考手冊則是說明隨著 Python 一起發佈的標準函式庫，除此之外，
其內容也包含一些時常出現在 Python 發佈版本中的非必要套件。

Python 的標準函式庫是非常龐大的，其提供了如下所述極多且涵蓋用途極廣的
許多模組。包含一些用 C 語言撰寫，可以操作像是檔案讀寫等系統相關功能的
內建模組，當然也有用 Python 撰寫，並使用標準解法解決許多常見問題的模組
。其中有些模組則是特別針對 Python 的可攜性去設計的，為此特地將一些平台
特殊相依性的功能抽象化成可跨平台的 API。

Python 的 Windows 安裝檔基本上包含整個標準函式庫，且通常也包含許多額外
套件；而類 Unix 作業系統方面，Python 則提供一系列的套件，對於某些非必
要性的套件，可能得使用該作業系統提供的套件管理工具來安裝。

In addition to the standard library, there is a growing collection of
several thousand components (from individual programs and modules to
packages and entire application development frameworks), available
from the Python Package Index.

* 1. 簡介

* 2. 內建函式

* 3. Non-essential Built-in Functions

* 4. 內建常數

  * 4.1. Constants added by the "site" module

* 5. 內建型態

  * 5.1. Truth Value Testing

  * 5.2. Boolean Operations — "and", "or", "not"

  * 5.3. Comparisons

  * 5.4. Numeric Types — "int", "float", "long", "complex"

  * 5.5. Iterator Types

  * 5.6. Sequence Types — "str", "unicode", "list", "tuple",
    "bytearray", "buffer", "xrange"

  * 5.7. Set Types — "set", "frozenset"

  * 5.8. Mapping Types — "dict"

  * 5.9. File Objects

  * 5.10. memoryview type

  * 5.11. Context Manager Types

  * 5.12. Other Built-in Types

  * 5.13. Special Attributes

* 6. 內建的例外

  * 6.1. Exception hierarchy

* 7. String Services

  * 7.1. "string" — Common string operations

  * 7.2. "re" — Regular expression operations

  * 7.3. "struct" — Interpret strings as packed binary data

  * 7.4. "difflib" — Helpers for computing deltas

  * 7.5. "StringIO" — Read and write strings as files

  * 7.6. "cStringIO" — Faster version of "StringIO"

  * 7.7. "textwrap" — Text wrapping and filling

  * 7.8. "codecs" — Codec registry and base classes

  * 7.9. "unicodedata" — Unicode Database

  * 7.10. "stringprep" — Internet String Preparation

  * 7.11. "fpformat" — Floating point conversions

* 8. Data Types

  * 8.1. "datetime" — Basic date and time types

  * 8.2. "calendar" — General calendar-related functions

  * 8.3. "collections" — High-performance container datatypes

  * 8.4. "heapq" — 堆積佇列 (heap queue) 演算法

  * 8.5. "bisect" — 陣列二分演算法 (Array bisection algorithm)

  * 8.6. "array" — 高效率的數值型態陣列

  * 8.7. "sets" — Unordered collections of unique elements

  * 8.8. "sched" — Event scheduler

  * 8.9. "mutex" — Mutual exclusion support

  * 8.10. "Queue" — A synchronized queue class

  * 8.11. "weakref" — Weak references

  * 8.12. "UserDict" — Class wrapper for dictionary objects

  * 8.13. "UserList" — Class wrapper for list objects

  * 8.14. "UserString" — Class wrapper for string objects

  * 8.15. "types" — Names for built-in types

  * 8.16. "new" — Creation of runtime internal objects

  * 8.17. "copy" — Shallow and deep copy operations

  * 8.18. "pprint" — Data pretty printer

  * 8.19. "repr" — Alternate "repr()" implementation

* 9. 數值與數學模組

  * 9.1. "numbers" — Numeric abstract base classes

  * 9.2. "math" — Mathematical functions

  * 9.3. "cmath" — Mathematical functions for complex numbers

  * 9.4. "decimal" — Decimal fixed point and floating point
    arithmetic

  * 9.5. "fractions" — Rational numbers

  * 9.6. "random" — Generate pseudo-random numbers

  * 9.7. "itertools" — Functions creating iterators for efficient
    looping

  * 9.8. "functools" — Higher-order functions and operations on
    callable objects

  * 9.9. "operator" — Standard operators as functions

* 10. 檔案與目錄存取

  * 10.1. "os.path" — Common pathname manipulations

  * 10.2. "fileinput" — Iterate over lines from multiple input
    streams

  * 10.3. "stat" — Interpreting "stat()" results

  * 10.4. "statvfs" — Constants used with "os.statvfs()"

  * 10.5. "filecmp" — File and Directory Comparisons

  * 10.6. "tempfile" — Generate temporary files and directories

  * 10.7. "glob" — Unix style pathname pattern expansion

  * 10.8. "fnmatch" — Unix filename pattern matching

  * 10.9. "linecache" — Random access to text lines

  * 10.10. "shutil" — High-level file operations

  * 10.11. "dircache" — Cached directory listings

  * 10.12. "macpath" — Mac OS 9 path manipulation functions

* 11. Data Persistence

  * 11.1. "pickle" — Python object serialization

  * 11.2. "cPickle" — A faster "pickle"

  * 11.3. "copy_reg" — Register "pickle" support functions

  * 11.4. "shelve" — Python object persistence

  * 11.5. "marshal" — Internal Python object serialization

  * 11.6. "anydbm" — Generic access to DBM-style databases

  * 11.7. "whichdb" — Guess which DBM module created a database

  * 11.8. "dbm" — Simple 「database」 interface

  * 11.9. "gdbm" — GNU’s reinterpretation of dbm

  * 11.10. "dbhash" — DBM-style interface to the BSD database
    library

  * 11.11. "bsddb" — Interface to Berkeley DB library

  * 11.12. "dumbdbm" — Portable DBM implementation

  * 11.13. "sqlite3" — DB-API 2.0 interface for SQLite databases

* 12. 資料壓縮與保存

  * 12.1. "zlib" — Compression compatible with **gzip**

  * 12.2. "gzip" — Support for **gzip** files

  * 12.3. "bz2" — Compression compatible with **bzip2**

  * 12.4. "zipfile" — Work with ZIP archives

  * 12.5. "tarfile" — Read and write tar archive files

* 13. 檔案格式

  * 13.1. "csv" — CSV File Reading and Writing

  * 13.2. "ConfigParser" — Configuration file parser

  * 13.3. "robotparser" —  Parser for robots.txt

  * 13.4. "netrc" — netrc file processing

  * 13.5. "xdrlib" — Encode and decode XDR data

  * 13.6. "plistlib" — Generate and parse Mac OS X ".plist" files

* 14. Cryptographic Services

  * 14.1. "hashlib" — Secure hashes and message digests

  * 14.2. "hmac" — Keyed-Hashing for Message Authentication

  * 14.3. "md5" — MD5 message digest algorithm

  * 14.4. "sha" — SHA-1 message digest algorithm

* 15. Generic Operating System Services

  * 15.1. "os" — Miscellaneous operating system interfaces

  * 15.2. "io" — Core tools for working with streams

  * 15.3. "time" — Time access and conversions

  * 15.4. "argparse" — Parser for command-line options, arguments
    and sub-commands

  * 15.5. "optparse" — Parser for command line options

  * 15.6. "getopt" — C-style parser for command line options

  * 15.7. "logging" — Logging facility for Python

  * 15.8. "logging.config" — Logging configuration

  * 15.9. "logging.handlers" — Logging handlers

  * 15.10. "getpass" — Portable password input

  * 15.11. "curses" — Terminal handling for character-cell displays

  * 15.12. "curses.textpad" — Text input widget for curses programs

  * 15.13. "curses.ascii" — Utilities for ASCII characters

  * 15.14. "curses.panel" — A panel stack extension for curses

  * 15.15. "platform" —  Access to underlying platform’s identifying
    data

  * 15.16. "errno" — Standard errno system symbols

  * 15.17. "ctypes" — A foreign function library for Python

* 16. Optional Operating System Services

  * 16.1. "select" — Waiting for I/O completion

  * 16.2. "threading" — Higher-level threading interface

  * 16.3. "thread" — Multiple threads of control

  * 16.4. "dummy_threading" — Drop-in replacement for the
    "threading" module

  * 16.5. "dummy_thread" — Drop-in replacement for the "thread"
    module

  * 16.6. "multiprocessing" — Process-based 「threading」 interface

  * 16.7. "mmap" — Memory-mapped file support

  * 16.8. "readline" — GNU readline interface

  * 16.9. "rlcompleter" — Completion function for GNU readline

* 17. Interprocess Communication and Networking

  * 17.1. "subprocess" — Subprocess management

  * 17.2. "socket" — Low-level networking interface

  * 17.3. "ssl" — TLS/SSL wrapper for socket objects

  * 17.4. "signal" — Set handlers for asynchronous events

  * 17.5. "popen2" — Subprocesses with accessible I/O streams

  * 17.6. "asyncore" — Asynchronous socket handler

  * 17.7. "asynchat" — Asynchronous socket command/response handler

* 18. Internet Data Handling

  * 18.1. "email" — An email and MIME handling package

  * 18.2. "json" — JSON encoder and decoder

  * 18.3. "mailcap" — Mailcap file handling

  * 18.4. "mailbox" — Manipulate mailboxes in various formats

  * 18.5. "mhlib" — Access to MH mailboxes

  * 18.6. "mimetools" — Tools for parsing MIME messages

  * 18.7. "mimetypes" — Map filenames to MIME types

  * 18.8. "MimeWriter" — Generic MIME file writer

  * 18.9. "mimify" — MIME processing of mail messages

  * 18.10. "multifile" — Support for files containing distinct parts

  * 18.11. "rfc822" — Parse RFC 2822 mail headers

  * 18.12. "base64" — RFC 3548: Base16, Base32, Base64 Data
    Encodings

  * 18.13. "binhex" — Encode and decode binhex4 files

  * 18.14. "binascii" — Convert between binary and ASCII

  * 18.15. "quopri" — Encode and decode MIME quoted-printable data

  * 18.16. "uu" — Encode and decode uuencode files

* 19. Structured Markup Processing Tools

  * 19.1. "HTMLParser" — Simple HTML and XHTML parser

  * 19.2. "sgmllib" — Simple SGML parser

  * 19.3. "htmllib" — A parser for HTML documents

  * 19.4. "htmlentitydefs" — Definitions of HTML general entities

  * 19.5. XML 處理模組

  * 19.6. XML vulnerabilities

  * 19.7. "xml.etree.ElementTree" — The ElementTree XML API

  * 19.8. "xml.dom" — The Document Object Model API

  * 19.9. "xml.dom.minidom" — Minimal DOM implementation

  * 19.10. "xml.dom.pulldom" — Support for building partial DOM
    trees

  * 19.11. "xml.sax" — Support for SAX2 parsers

  * 19.12. "xml.sax.handler" — Base classes for SAX handlers

  * 19.13. "xml.sax.saxutils" — SAX Utilities

  * 19.14. "xml.sax.xmlreader" — Interface for XML parsers

  * 19.15. "xml.parsers.expat" — Fast XML parsing using Expat

* 20. Internet Protocols and Support

  * 20.1. "webbrowser" — Convenient Web-browser controller

  * 20.2. "cgi" — Common Gateway Interface support

  * 20.3. "cgitb" — Traceback manager for CGI scripts

  * 20.4. "wsgiref" — WSGI Utilities and Reference Implementation

  * 20.5. "urllib" — Open arbitrary resources by URL

  * 20.6. "urllib2" — extensible library for opening URLs

  * 20.7. "httplib" — HTTP protocol client

  * 20.8. "ftplib" — FTP protocol client

  * 20.9. "poplib" — POP3 protocol client

  * 20.10. "imaplib" — IMAP4 protocol client

  * 20.11. "nntplib" — NNTP protocol client

  * 20.12. "smtplib" — SMTP protocol client

  * 20.13. "smtpd" — SMTP Server

  * 20.14. "telnetlib" — Telnet client

  * 20.15. "uuid" — UUID objects according to RFC 4122

  * 20.16. "urlparse" — Parse URLs into components

  * 20.17. "SocketServer" — A framework for network servers

  * 20.18. "BaseHTTPServer" — Basic HTTP server

  * 20.19. "SimpleHTTPServer" — Simple HTTP request handler

  * 20.20. "CGIHTTPServer" — CGI-capable HTTP request handler

  * 20.21. "cookielib" — Cookie handling for HTTP clients

  * 20.22. "Cookie" — HTTP state management

  * 20.23. "xmlrpclib" — XML-RPC client access

  * 20.24. "SimpleXMLRPCServer" — Basic XML-RPC server

  * 20.25. "DocXMLRPCServer" — Self-documenting XML-RPC server

* 21. Multimedia Services

  * 21.1. "audioop" — Manipulate raw audio data

  * 21.2. "imageop" — Manipulate raw image data

  * 21.3. "aifc" — Read and write AIFF and AIFC files

  * 21.4. "sunau" — Read and write Sun AU files

  * 21.5. "wave" — Read and write WAV files

  * 21.6. "chunk" — Read IFF chunked data

  * 21.7. "colorsys" — Conversions between color systems

  * 21.8. "imghdr" — Determine the type of an image

  * 21.9. "sndhdr" — Determine type of sound file

  * 21.10. "ossaudiodev" — Access to OSS-compatible audio devices

* 22. 國際化

  * 22.1. "gettext" — Multilingual internationalization services

  * 22.2. "locale" — Internationalization services

* 23. 程式框架

  * 23.1. "cmd" — Support for line-oriented command interpreters

  * 23.2. "shlex" — Simple lexical analysis

* 24. 以 Tk 打造 GUI

  * 24.1. "Tkinter" — Python interface to Tcl/Tk

  * 24.2. "ttk" — Tk themed widgets

  * 24.3. "Tix" — Extension widgets for Tk

  * 24.4. "ScrolledText" — Scrolled Text Widget

  * 24.5. "turtle" — Turtle graphics for Tk

  * 24.6. IDLE

  * 24.7. 其它的 GUI

* 25. 開發工具

  * 25.1. "pydoc" — Documentation generator and online help system

  * 25.2. "doctest" — Test interactive Python examples

  * 25.3. "unittest" — 單元測試框架

  * 25.4. 2to3 - 自動將 Python 2的程式碼轉成 Python 3

  * 25.5. "test" — Regression tests package for Python

  * 25.6. "test.support" — Utility functions for tests

* 26. Debugging and Profiling

  * 26.1. "bdb" — Debugger framework

  * 26.2. "pdb" — The Python Debugger

  * 26.3. Debugger Commands

  * 26.4. The Python Profilers

  * 26.5. "hotshot" — High performance logging profiler

  * 26.6. "timeit" — Measure execution time of small code snippets

  * 26.7. "trace" — Trace or track Python statement execution

* 27. 軟體封裝與發布

  * 27.1. "distutils" — Building and installing Python modules

  * 27.2. "ensurepip" — Bootstrapping the "pip" installer

* 28. Python Runtime Services

  * 28.1. "sys" — System-specific parameters and functions

  * 28.2. "sysconfig" — Provide access to Python’s configuration
    information

  * 28.3. "__builtin__" — Built-in objects

  * 28.4. "future_builtins" — Python 3 builtins

  * 28.5. "__main__" — Top-level script environment

  * 28.6. "warnings" — Warning control

  * 28.7. "contextlib" — Utilities for "with"-statement contexts

  * 28.8. "abc" — Abstract Base Classes

  * 28.9. "atexit" — Exit handlers

  * 28.10. "traceback" — Print or retrieve a stack traceback

  * 28.11. "__future__" — Future statement definitions

  * 28.12. "gc" — Garbage Collector interface

  * 28.13. "inspect" — Inspect live objects

  * 28.14. "site" — Site-specific configuration hook

  * 28.15. "user" — User-specific configuration hook

  * 28.16. "fpectl" — Floating point exception control

* 29. Custom Python Interpreters

  * 29.1. "code" — Interpreter base classes

  * 29.2. "codeop" — Compile Python code

* 30. Restricted Execution

  * 30.1. "rexec" — Restricted execution framework

  * 30.2. "Bastion" — Restricting access to objects

* 31. 匯入模組

  * 31.1. "imp" — Access the "import" internals

  * 31.2. "importlib" — Convenience wrappers for "__import__()"

  * 31.3. "imputil" — Import utilities

  * 31.4. "zipimport" — Import modules from Zip archives

  * 31.5. "pkgutil" — Package extension utility

  * 31.6. "modulefinder" — Find modules used by a script

  * 31.7. "runpy" — Locating and executing Python modules

* 32. Python Language Services

  * 32.1. "parser" — Access Python parse trees

  * 32.2. "ast" — Abstract Syntax Trees

  * 32.3. "symtable" — Access to the compiler’s symbol tables

  * 32.4. "symbol" — Constants used with Python parse trees

  * 32.5. "token" — Constants used with Python parse trees

  * 32.6. "keyword" — Testing for Python keywords

  * 32.7. "tokenize" — Tokenizer for Python source

  * 32.8. "tabnanny" — Detection of ambiguous indentation

  * 32.9. "pyclbr" — Python class browser support

  * 32.10. "py_compile" — Compile Python source files

  * 32.11. "compileall" — Byte-compile Python libraries

  * 32.12. "dis" — Python bytecode的反組譯器

  * 32.13. "pickletools" — Tools for pickle developers

* 33. Python compiler package

  * 33.1. The basic interface

  * 33.2. Limitations

  * 33.3. Python Abstract Syntax

  * 33.4. Using Visitors to Walk ASTs

  * 33.5. Bytecode Generation

* 34. Miscellaneous Services

  * 34.1. "formatter" — Generic output formatting

* 35. MS Windows Specific Services

  * 35.1. "msilib" — Read and write Microsoft Installer files

  * 35.2. "msvcrt" — Useful routines from the MS VC++ runtime

  * 35.3. "_winreg" — Windows registry access

  * 35.4. "winsound" — Sound-playing interface for Windows

* 36. Unix Specific Services

  * 36.1. "posix" — The most common POSIX system calls

  * 36.2. "pwd" — The password database

  * 36.3. "spwd" — The shadow password database

  * 36.4. "grp" — The group database

  * 36.5. "crypt" — Function to check Unix passwords

  * 36.6. "dl" — Call C functions in shared objects

  * 36.7. "termios" — POSIX style tty control

  * 36.8. "tty" — Terminal control functions

  * 36.9. "pty" — Pseudo-terminal utilities

  * 36.10. "fcntl" — The "fcntl" and "ioctl" system calls

  * 36.11. "pipes" — Interface to shell pipelines

  * 36.12. "posixfile" — File-like objects with locking support

  * 36.13. "resource" — Resource usage information

  * 36.14. "nis" — Interface to Sun’s NIS (Yellow Pages)

  * 36.15. "syslog" — Unix syslog library routines

  * 36.16. "commands" — Utilities for running commands

* 37. Mac OS X specific services

  * 37.1. "ic" — Access to the Mac OS X Internet Config

  * 37.2. "MacOS" — Access to Mac OS interpreter features

  * 37.3. "macostools" — Convenience routines for file manipulation

  * 37.4. "findertools" — The **finder**’s Apple Events interface

  * 37.5. "EasyDialogs" — Basic Macintosh dialogs

  * 37.6. "FrameWork" — Interactive application framework

  * 37.7. "autoGIL" — Global Interpreter Lock handling in event
    loops

  * 37.8. Mac OS Toolbox Modules

  * 37.9. "ColorPicker" — Color selection dialog

* 38. MacPython OSA Modules

  * 38.1. "gensuitemodule" — Generate OSA stub packages

  * 38.2. "aetools" — OSA client support

  * 38.3. "aepack" — Conversion between Python variables and
    AppleEvent data containers

  * 38.4. "aetypes" — AppleEvent objects

  * 38.5. "MiniAEFrame" — Open Scripting Architecture server support

* 39. SGI IRIX Specific Services

  * 39.1. "al" — Audio functions on the SGI

  * 39.2. "AL" — Constants used with the "al" module

  * 39.3. "cd" — CD-ROM access on SGI systems

  * 39.4. "fl" — FORMS library for graphical user interfaces

  * 39.5. "FL" — Constants used with the "fl" module

  * 39.6. "flp" — Functions for loading stored FORMS designs

  * 39.7. "fm" — *Font Manager* interface

  * 39.8. "gl" — *Graphics Library* interface

  * 39.9. "DEVICE" — Constants used with the "gl" module

  * 39.10. "GL" — Constants used with the "gl" module

  * 39.11. "imgfile" — Support for SGI imglib files

  * 39.12. "jpeg" — Read and write JPEG files

* 40. SunOS Specific Services

  * 40.1. "sunaudiodev" — Access to Sun audio hardware

  * 40.2. "SUNAUDIODEV" — Constants used with "sunaudiodev"

* 41. Undocumented Modules

  * 41.1. Miscellaneous useful utilities

  * 41.2. Platform specific modules

  * 41.3. Multimedia

  * 41.4. Undocumented Mac OS modules

  * 41.5. Obsolete

  * 41.6. SGI-specific Extension modules
