Python
版本
2.7.15
3.7.2rc1
语言
English
中文
返回目录
What’s New in Python
What’s New in Python 2.7
The Future for Python 2.x
Changes to the Handling of Deprecation Warnings
Python 3.1 Features
PEP 372: Adding an Ordered Dictionary to collections
PEP 378: Format Specifier for Thousands Separator
PEP 389: The argparse Module for Parsing Command Lines
PEP 391: Dictionary-Based Configuration For Logging
PEP 3106: Dictionary Views
PEP 3137: The memoryview Object
Other Language Changes
Interpreter Changes
Optimizations
New and Improved Modules
New module: importlib
New module: sysconfig
ttk: Themed Widgets for Tk
Updated module: unittest
Updated module: ElementTree 1.3
Build and C API Changes
Capsules
Port-Specific Changes: Windows
Port-Specific Changes: Mac OS X
Port-Specific Changes: FreeBSD
Other Changes and Fixes
Porting to Python 2.7
New Features Added to Python 2.7 Maintenance Releases
Two new environment variables for debug mode
PEP 434: IDLE Enhancement Exception for All Branches
PEP 466: Network Security Enhancements for Python 2.7
PEP 477: Backport ensurepip (PEP 453) to Python 2.7
Bootstrapping pip By Default
Documentation Changes
PEP 476: Enabling certificate verification by default for stdlib http clients
PEP 493: HTTPS verification migration tools for Python 2.7
New make regen-all build target
Removal of make touch build target
Acknowledgements
What’s New in Python 2.6
Python 3.0
Changes to the Development Process
New Issue Tracker: Roundup
New Documentation Format: reStructuredText Using Sphinx
PEP 343: The ‘with’ statement
Writing Context Managers
The contextlib module
PEP 366: Explicit Relative Imports From a Main Module
PEP 370: Per-user site-packages Directory
PEP 371: The multiprocessing Package
PEP 3101: Advanced String Formatting
PEP 3105: print As a Function
PEP 3110: Exception-Handling Changes
PEP 3112: Byte Literals
PEP 3116: New I/O Library
PEP 3118: Revised Buffer Protocol
PEP 3119: Abstract Base Classes
PEP 3127: Integer Literal Support and Syntax
PEP 3129: Class Decorators
PEP 3141: A Type Hierarchy for Numbers
The fractions Module
Other Language Changes
Optimizations
Interpreter Changes
New and Improved Modules
The ast module
The future_builtins module
The json module: JavaScript Object Notation
The plistlib module: A Property-List Parser
ctypes Enhancements
Improved SSL Support
Deprecations and Removals
Build and C API Changes
Port-Specific Changes: Windows
Port-Specific Changes: Mac OS X
Port-Specific Changes: IRIX
Porting to Python 2.6
Acknowledgements
What’s New in Python 2.5
PEP 308: Conditional Expressions
PEP 309: Partial Function Application
PEP 314: Metadata for Python Software Packages v1.1
PEP 328: Absolute and Relative Imports
PEP 338: Executing Modules as Scripts
PEP 341: Unified try/except/finally
PEP 342: New Generator Features
PEP 343: The ‘with’ statement
Writing Context Managers
The contextlib module
PEP 352: Exceptions as New-Style Classes
PEP 353: Using ssize_t as the index type
PEP 357: The ‘__index__’ method
Other Language Changes
Interactive Interpreter Changes
Optimizations
New, Improved, and Removed Modules
The ctypes package
The ElementTree package
The hashlib package
The sqlite3 package
The wsgiref package
Build and C API Changes
Port-Specific Changes
Porting to Python 2.5
Acknowledgements
What’s New in Python 2.4
PEP 218: Built-In Set Objects
PEP 237: Unifying Long Integers and Integers
PEP 289: Generator Expressions
PEP 292: Simpler String Substitutions
PEP 318: Decorators for Functions and Methods
PEP 322: Reverse Iteration
PEP 324: New subprocess Module
PEP 327: Decimal Data Type
Why is Decimal needed?
The Decimal type
The Context type
PEP 328: Multi-line Imports
PEP 331: Locale-Independent Float/String Conversions
Other Language Changes
Optimizations
New, Improved, and Deprecated Modules
cookielib
doctest
Build and C API Changes
Port-Specific Changes
Porting to Python 2.4
Acknowledgements
What’s New in Python 2.3
PEP 218: A Standard Set Datatype
PEP 255: Simple Generators
PEP 263: Source Code Encodings
PEP 273: Importing Modules from ZIP Archives
PEP 277: Unicode file name support for Windows NT
PEP 278: Universal Newline Support
PEP 279: enumerate()
PEP 282: The logging Package
PEP 285: A Boolean Type
PEP 293: Codec Error Handling Callbacks
PEP 301: Package Index and Metadata for Distutils
PEP 302: New Import Hooks
PEP 305: Comma-separated Files
PEP 307: Pickle Enhancements
Extended Slices
Other Language Changes
String Changes
Optimizations
New, Improved, and Deprecated Modules
Date/Time Type
The optparse Module
Pymalloc: A Specialized Object Allocator
Build and C API Changes
Port-Specific Changes
Other Changes and Fixes
Porting to Python 2.3
Acknowledgements
What’s New in Python 2.2
Introduction
PEPs 252 and 253: Type and Class Changes
Old and New Classes
Descriptors
Multiple Inheritance: The Diamond Rule
Attribute Access
Related Links
PEP 234: Iterators
PEP 255: Simple Generators
PEP 237: Unifying Long Integers and Integers
PEP 238: Changing the Division Operator
Unicode Changes
PEP 227: Nested Scopes
New and Improved Modules
Interpreter Changes and Fixes
Other Changes and Fixes
Acknowledgements
What’s New in Python 2.1
Introduction
PEP 227: Nested Scopes
PEP 236: __future__ Directives
PEP 207: Rich Comparisons
PEP 230: Warning Framework
PEP 229: New Build System
PEP 205: Weak References
PEP 232: Function Attributes
PEP 235: Importing Modules on Case-Insensitive Platforms
PEP 217: Interactive Display Hook
PEP 208: New Coercion Model
PEP 241: Metadata in Python Packages
New and Improved Modules
Other Changes and Fixes
Acknowledgements
What’s New in Python 2.0
Introduction
What About Python 1.6?
New Development Process
Unicode
List Comprehensions
Augmented Assignment
String Methods
Garbage Collection of Cycles
Other Core Changes
Minor Language Changes
Changes to Built-in Functions
Porting to 2.0
Extending/Embedding Changes
Distutils: Making Modules Easy to Install
XML Modules
SAX2 Support
DOM Support
Relationship to PyXML
Module changes
New modules
IDLE Improvements
Deleted and Deprecated Modules
Acknowledgements
The Python Tutorial
1. Whetting Your Appetite
2. Using the Python Interpreter
2.1. Invoking the Interpreter
2.1.1. Argument Passing
2.1.2. Interactive Mode
2.2. The Interpreter and Its Environment
2.2.1. Source Code Encoding
3. An Informal Introduction to Python
3.1. Using Python as a Calculator
3.1.1. Numbers
3.1.2. Strings
3.1.3. Unicode Strings
3.1.4. Lists
3.2. First Steps Towards Programming
4. More Control Flow Tools
4.1. if Statements
4.2. for Statements
4.3. The range() Function
4.4. break and continue Statements, and else Clauses on Loops
4.5. pass Statements
4.6. Defining Functions
4.7. More on Defining Functions
4.7.1. Default Argument Values
4.7.2. Keyword Arguments
4.7.3. Arbitrary Argument Lists
4.7.4. Unpacking Argument Lists
4.7.5. Lambda Expressions
4.7.6. Documentation Strings
4.8. Intermezzo: Coding Style
5. Data Structures
5.1. More on Lists
5.1.1. Using Lists as Stacks
5.1.2. Using Lists as Queues
5.1.3. Functional Programming Tools
5.1.4. List Comprehensions
5.1.4.1. Nested List Comprehensions
5.2. The del statement
5.3. Tuples and Sequences
5.4. Sets
5.5. Dictionaries
5.6. Looping Techniques
5.7. More on Conditions
5.8. Comparing Sequences and Other Types
6. Modules
6.1. More on Modules
6.1.1. Executing modules as scripts
6.1.2. The Module Search Path
6.1.3. “Compiled” Python files
6.2. Standard Modules
6.3. The dir() Function
6.4. Packages
6.4.1. Importing * From a Package
6.4.2. Intra-package References
6.4.3. Packages in Multiple Directories
7. Input and Output
7.1. Fancier Output Formatting
7.1.1. Old string formatting
7.2. Reading and Writing Files
7.2.1. Methods of File Objects
7.2.2. Saving structured data with json
8. Errors and Exceptions
8.1. Syntax Errors
8.2. Exceptions
8.3. Handling Exceptions
8.4. Raising Exceptions
8.5. User-defined Exceptions
8.6. Defining Clean-up Actions
8.7. Predefined Clean-up Actions
9. Classes
9.1. A Word About Names and Objects
9.2. Python Scopes and Namespaces
9.3. A First Look at Classes
9.3.1. Class Definition Syntax
9.3.2. Class Objects
9.3.3. Instance Objects
9.3.4. Method Objects
9.3.5. Class and Instance Variables
9.4. Random Remarks
9.5. Inheritance
9.5.1. Multiple Inheritance
9.6. Private Variables and Class-local References
9.7. Odds and Ends
9.8. Exceptions Are Classes Too
9.9. Iterators
9.10. Generators
9.11. Generator Expressions
10. Brief Tour of the Standard Library
10.1. Operating System Interface
10.2. File Wildcards
10.3. Command Line Arguments
10.4. Error Output Redirection and Program Termination
10.5. String Pattern Matching
10.6. Mathematics
10.7. Internet Access
10.8. Dates and Times
10.9. Data Compression
10.10. Performance Measurement
10.11. Quality Control
10.12. Batteries Included
11. Brief Tour of the Standard Library — Part II
11.1. Output Formatting
11.2. Templating
11.3. Working with Binary Data Record Layouts
11.4. Multi-threading
11.5. Logging
11.6. Weak References
11.7. Tools for Working with Lists
11.8. Decimal Floating Point Arithmetic
12. What Now?
13. Interactive Input Editing and History Substitution
13.1. Line Editing
13.2. History Substitution
13.3. Key Bindings
13.4. Alternatives to the Interactive Interpreter
14. Floating Point Arithmetic: Issues and Limitations
14.1. Representation Error
15. Appendix
15.1. Interactive Mode
15.1.1. Error Handling
15.1.2. Executable Python Scripts
15.1.3. The Interactive Startup File
15.1.4. The Customization Modules
Python Setup and Usage
1. Command line and environment
1.1. Command line
1.1.1. Interface options
1.1.2. Generic options
1.1.3. Miscellaneous options
1.1.4. Options you shouldn’t use
1.2. Environment variables
1.2.1. Debug-mode variables
2. Using Python on Unix platforms
2.1. Getting and installing the latest version of Python
2.1.1. On Linux
2.1.2. On FreeBSD and OpenBSD
2.1.3. On OpenSolaris
2.2. Building Python
2.3. Python-related paths and files
2.4. Miscellaneous
2.5. Editors and IDEs
3. Using Python on Windows
3.1. Installing Python
3.2. Alternative bundles
3.3. Configuring Python
3.3.1. Excursus: Setting environment variables
3.3.2. Finding the Python executable
3.3.3. Finding modules
3.3.4. Executing scripts
3.4. Additional modules
3.4.1. PyWin32
3.4.2. Py2exe
3.4.3. WConio
3.5. Compiling Python on Windows
3.6. Other resources
4. Using Python on a Macintosh
4.1. Getting and Installing MacPython
4.1.1. How to run a Python script
4.1.2. Running scripts with a GUI
4.1.3. Configuration
4.2. The IDE
4.3. Installing Additional Python Packages
4.4. GUI Programming on the Mac
4.5. Distributing Python Applications on the Mac
4.6. Other Resources
The Python Language Reference
1. Introduction
1.1. Alternate Implementations
1.2. Notation
2. Lexical analysis
2.1. Line structure
2.1.1. Logical lines
2.1.2. Physical lines
2.1.3. Comments
2.1.4. Encoding declarations
2.1.5. Explicit line joining
2.1.6. Implicit line joining
2.1.7. Blank lines
2.1.8. Indentation
2.1.9. Whitespace between tokens
2.2. Other tokens
2.3. Identifiers and keywords
2.3.1. Keywords
2.3.2. Reserved classes of identifiers
2.4. Literals
2.4.1. String literals
2.4.2. String literal concatenation
2.4.3. Numeric literals
2.4.4. Integer and long integer literals
2.4.5. Floating point literals
2.4.6. Imaginary literals
2.5. Operators
2.6. Delimiters
3. Data model
3.1. Objects, values and types
3.2. The standard type hierarchy
3.3. New-style and classic classes
3.4. Special method names
3.4.1. Basic customization
3.4.2. Customizing attribute access
3.4.2.1. More attribute access for new-style classes
3.4.2.2. Implementing Descriptors
3.4.2.3. Invoking Descriptors
3.4.2.4. __slots__
3.4.3. Customizing class creation
3.4.4. Customizing instance and subclass checks
3.4.5. Emulating callable objects
3.4.6. Emulating container types
3.4.7. Additional methods for emulation of sequence types
3.4.8. Emulating numeric types
3.4.9. Coercion rules
3.4.10. With Statement Context Managers
3.4.11. Special method lookup for old-style classes
3.4.12. Special method lookup for new-style classes
4. Execution model
4.1. Naming and binding
4.1.1. Interaction with dynamic features
4.2. Exceptions
5. Expressions
5.1. Arithmetic conversions
5.2. Atoms
5.2.1. Identifiers (Names)
5.2.2. Literals
5.2.3. Parenthesized forms
5.2.4. List displays
5.2.5. Displays for sets and dictionaries
5.2.6. Generator expressions
5.2.7. Dictionary displays
5.2.8. Set displays
5.2.9. String conversions
5.2.10. Yield expressions
5.2.10.1. Generator-iterator methods
5.3. Primaries
5.3.1. Attribute references
5.3.2. Subscriptions
5.3.3. Slicings
5.3.4. Calls
5.4. The power operator
5.5. Unary arithmetic and bitwise operations
5.6. Binary arithmetic operations
5.7. Shifting operations
5.8. Binary bitwise operations
5.9. Comparisons
5.9.1. Value comparisons
5.9.2. Membership test operations
5.9.3. Identity comparisons
5.10. Boolean operations
5.11. Conditional Expressions
5.12. Lambdas
5.13. Expression lists
5.14. Evaluation order
5.15. Operator precedence
6. Simple statements
6.1. Expression statements
6.2. Assignment statements
6.2.1. Augmented assignment statements
6.3. The assert statement
6.4. The pass statement
6.5. The del statement
6.6. The print statement
6.7. The return statement
6.8. The yield statement
6.9. The raise statement
6.10. The break statement
6.11. The continue statement
6.12. The import statement
6.12.1. Future statements
6.13. The global statement
6.14. The exec statement
7. Compound statements
7.1. The if statement
7.2. The while statement
7.3. The for statement
7.4. The try statement
7.5. The with statement
7.6. Function definitions
7.7. Class definitions
8. Top-level components
8.1. Complete Python programs
8.2. File input
8.3. Interactive input
8.4. Expression input
9. Full Grammar specification
The Python Standard Library
1. Introduction
2. Built-in Functions
3. Non-essential Built-in Functions
4. Built-in Constants
4.1. Constants added by the site module
5. Built-in Types
5.1. Truth Value Testing
5.2. Boolean Operations — and, or, not
5.3. Comparisons
5.4. Numeric Types — int, float, long, complex
5.4.1. Bitwise Operations on Integer Types
5.4.2. Additional Methods on Integer Types
5.4.3. Additional Methods on Float
5.5. Iterator Types
5.5.1. Generator Types
5.6. Sequence Types — str, unicode, list, tuple, bytearray, buffer, xrange
5.6.1. String Methods
5.6.2. String Formatting Operations
5.6.3. XRange Type
5.6.4. Mutable Sequence Types
5.7. Set Types — set, frozenset
5.8. Mapping Types — dict
5.8.1. Dictionary view objects
5.9. File Objects
5.10. memoryview type
5.11. Context Manager Types
5.12. Other Built-in Types
5.12.1. Modules
5.12.2. Classes and Class Instances
5.12.3. Functions
5.12.4. Methods
5.12.5. Code Objects
5.12.6. Type Objects
5.12.7. The Null Object
5.12.8. The Ellipsis Object
5.12.9. The NotImplemented Object
5.12.10. Boolean Values
5.12.11. Internal Objects
5.13. Special Attributes
6. Built-in Exceptions
6.1. Exception hierarchy
7. String Services
7.1. string — Common string operations
7.1.1. String constants
7.1.2. Custom String Formatting
7.1.3. Format String Syntax
7.1.3.1. Format Specification Mini-Language
7.1.3.2. Format examples
7.1.4. Template strings
7.1.5. String functions
7.1.6. Deprecated string functions
7.2. re — Regular expression operations
7.2.1. Regular Expression Syntax
7.2.2. Module Contents
7.2.3. Regular Expression Objects
7.2.4. Match Objects
7.2.5. Examples
7.2.5.1. Checking For a Pair
7.2.5.2. Simulating scanf()
7.2.5.3. search() vs. match()
7.2.5.4. Making a Phonebook
7.2.5.5. Text Munging
7.2.5.6. Finding all Adverbs
7.2.5.7. Finding all Adverbs and their Positions
7.2.5.8. Raw String Notation
7.3. struct — Interpret strings as packed binary data
7.3.1. Functions and Exceptions
7.3.2. Format Strings
7.3.2.1. Byte Order, Size, and Alignment
7.3.2.2. Format Characters
7.3.2.3. Examples
7.3.3. Classes
7.4. difflib — Helpers for computing deltas
7.4.1. SequenceMatcher Objects
7.4.2. SequenceMatcher Examples
7.4.3. Differ Objects
7.4.4. Differ Example
7.4.5. A command-line interface to difflib
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.8.1. Codec Base Classes
7.8.1.1. Codec Objects
7.8.1.2. IncrementalEncoder Objects
7.8.1.3. IncrementalDecoder Objects
7.8.1.4. StreamWriter Objects
7.8.1.5. StreamReader Objects
7.8.1.6. StreamReaderWriter Objects
7.8.1.7. StreamRecoder Objects
7.8.2. Encodings and Unicode
7.8.3. Standard Encodings
7.8.4. Python Specific Encodings
7.8.5. encodings.idna — Internationalized Domain Names in Applications
7.8.6. encodings.utf_8_sig — UTF-8 codec with BOM signature
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.1.1. Available Types
8.1.2. timedelta Objects
8.1.3. date Objects
8.1.4. datetime Objects
8.1.5. time Objects
8.1.6. tzinfo Objects
8.1.7. strftime() and strptime() Behavior
8.2. calendar — General calendar-related functions
8.3. collections — High-performance container datatypes
8.3.1. Counter objects
8.3.2. deque objects
8.3.2.1. deque Recipes
8.3.3. defaultdict objects
8.3.3.1. defaultdict Examples
8.3.4. namedtuple() Factory Function for Tuples with Named Fields
8.3.5. OrderedDict objects
8.3.5.1. OrderedDict Examples and Recipes
8.3.6. Collections Abstract Base Classes
8.4. heapq — Heap queue algorithm
8.4.1. Basic Examples
8.4.2. Priority Queue Implementation Notes
8.4.3. Theory
8.5. bisect — Array bisection algorithm
8.5.1. Searching Sorted Lists
8.5.2. Other Examples
8.6. array — Efficient arrays of numeric values
8.7. sets — Unordered collections of unique elements
8.7.1. Set Objects
8.7.2. Example
8.7.3. Protocol for automatic conversion to immutable
8.7.4. Comparison to the built-in set types
8.8. sched — Event scheduler
8.8.1. Scheduler Objects
8.9. mutex — Mutual exclusion support
8.9.1. Mutex Objects
8.10. Queue — A synchronized queue class
8.10.1. Queue Objects
8.11. weakref — Weak references
8.11.1. Weak Reference Objects
8.11.2. Example
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.18.1. PrettyPrinter Objects
8.18.2. pprint Example
8.19. repr — Alternate repr() implementation
8.19.1. Repr Objects
8.19.2. Subclassing Repr Objects
9. Numeric and Mathematical Modules
9.1. numbers — Numeric abstract base classes
9.1.1. The numeric tower
9.1.2. Notes for type implementors
9.1.2.1. Adding More Numeric ABCs
9.1.2.2. Implementing the arithmetic operations
9.2. math — Mathematical functions
9.2.1. Number-theoretic and representation functions
9.2.2. Power and logarithmic functions
9.2.3. Trigonometric functions
9.2.4. Angular conversion
9.2.5. Hyperbolic functions
9.2.6. Special functions
9.2.7. Constants
9.3. cmath — Mathematical functions for complex numbers
9.3.1. Conversions to and from polar coordinates
9.3.2. Power and logarithmic functions
9.3.3. Trigonometric functions
9.3.4. Hyperbolic functions
9.3.5. Classification functions
9.3.6. Constants
9.4. decimal — Decimal fixed point and floating point arithmetic
9.4.1. Quick-start Tutorial
9.4.2. Decimal objects
9.4.2.1. Logical operands
9.4.3. Context objects
9.4.4. Signals
9.4.5. Floating Point Notes
9.4.5.1. Mitigating round-off error with increased precision
9.4.5.2. Special values
9.4.6. Working with threads
9.4.7. Recipes
9.4.8. Decimal FAQ
9.5. fractions — Rational numbers
9.6. random — Generate pseudo-random numbers
9.7. itertools — Functions creating iterators for efficient looping
9.7.1. Itertool functions
9.7.2. Recipes
9.8. functools — Higher-order functions and operations on callable objects
9.8.1. partial Objects
9.9. operator — Standard operators as functions
9.9.1. Mapping Operators to Functions
10. File and Directory Access
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.5.1. The dircmp class
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.10.1. Directory and files operations
10.10.1.1. copytree example
10.10.2. Archiving operations
10.10.2.1. Archiving example
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.1.1. Relationship to other Python modules
11.1.2. Data stream format
11.1.3. Usage
11.1.4. What can be pickled and unpickled?
11.1.5. The pickle protocol
11.1.5.1. Pickling and unpickling normal class instances
11.1.5.2. Pickling and unpickling extension types
11.1.5.3. Pickling and unpickling external objects
11.1.6. Subclassing Unpicklers
11.1.7. Example
11.2. cPickle — A faster pickle
11.3. copy_reg — Register pickle support functions
11.3.1. Example
11.4. shelve — Python object persistence
11.4.1. Restrictions
11.4.2. Example
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.10.1. Database Objects
11.11. bsddb — Interface to Berkeley DB library
11.11.1. Hash, BTree and Record Objects
11.12. dumbdbm — Portable DBM implementation
11.12.1. Dumbdbm Objects
11.13. sqlite3 — DB-API 2.0 interface for SQLite databases
11.13.1. Module functions and constants
11.13.2. Connection Objects
11.13.3. Cursor Objects
11.13.4. Row Objects
11.13.5. SQLite and Python types
11.13.5.1. Introduction
11.13.5.2. Using adapters to store additional Python types in SQLite databases
11.13.5.2.1. Letting your object adapt itself
11.13.5.2.2. Registering an adapter callable
11.13.5.3. Converting SQLite values to custom Python types
11.13.5.4. Default adapters and converters
11.13.6. Controlling Transactions
11.13.7. Using sqlite3 efficiently
11.13.7.1. Using shortcut methods
11.13.7.2. Accessing columns by name instead of by index
11.13.7.3. Using the connection as a context manager
11.13.8. Common issues
11.13.8.1. Multithreading
12. Data Compression and Archiving
12.1. zlib — Compression compatible with gzip
12.2. gzip — Support for gzip files
12.2.1. Examples of usage
12.3. bz2 — Compression compatible with bzip2
12.3.1. (De)compression of files
12.3.2. Sequential (de)compression
12.3.3. One-shot (de)compression
12.4. zipfile — Work with ZIP archives
12.4.1. ZipFile Objects
12.4.2. PyZipFile Objects
12.4.3. ZipInfo Objects
12.4.4. Command-Line Interface
12.4.4.1. Command-line options
12.5. tarfile — Read and write tar archive files
12.5.1. TarFile Objects
12.5.2. TarInfo Objects
12.5.3. Examples
12.5.4. Supported tar formats
12.5.5. Unicode issues
13. File Formats
13.1. csv — CSV File Reading and Writing
13.1.1. Module Contents
13.1.2. Dialects and Formatting Parameters
13.1.3. Reader Objects
13.1.4. Writer Objects
13.1.5. Examples
13.2. ConfigParser — Configuration file parser
13.2.1. RawConfigParser Objects
13.2.2. ConfigParser Objects
13.2.3. SafeConfigParser Objects
13.2.4. Examples
13.3. robotparser — Parser for robots.txt
13.4. netrc — netrc file processing
13.4.1. netrc Objects
13.5. xdrlib — Encode and decode XDR data
13.5.1. Packer Objects
13.5.2. Unpacker Objects
13.5.3. Exceptions
13.6. plistlib — Generate and parse Mac OS X .plist files
13.6.1. Examples
14. Cryptographic Services
14.1. hashlib — Secure hashes and message digests
14.1.1. Key derivation
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.1.1. Process Parameters
15.1.2. File Object Creation
15.1.3. File Descriptor Operations
15.1.3.1. open() flag constants
15.1.4. Files and Directories
15.1.5. Process Management
15.1.6. Miscellaneous System Information
15.1.7. Miscellaneous Functions
15.2. io — Core tools for working with streams
15.2.1. Module Interface
15.2.2. I/O Base Classes
15.2.3. Raw File I/O
15.2.4. Buffered Streams
15.2.5. Text I/O
15.2.6. Advanced topics
15.2.6.1. Performance
15.2.6.1.1. Binary I/O
15.2.6.1.2. Text I/O
15.2.6.2. Multi-threading
15.2.6.3. Reentrancy
15.3. time — Time access and conversions
15.4. argparse — Parser for command-line options, arguments and sub-commands
15.4.1. Example
15.4.1.1. Creating a parser
15.4.1.2. Adding arguments
15.4.1.3. Parsing arguments
15.4.2. ArgumentParser objects
15.4.2.1. prog
15.4.2.2. usage
15.4.2.3. description
15.4.2.4. epilog
15.4.2.5. parents
15.4.2.6. formatter_class
15.4.2.7. prefix_chars
15.4.2.8. fromfile_prefix_chars
15.4.2.9. argument_default
15.4.2.10. conflict_handler
15.4.2.11. add_help
15.4.3. The add_argument() method
15.4.3.1. name or flags
15.4.3.2. action
15.4.3.3. nargs
15.4.3.4. const
15.4.3.5. default
15.4.3.6. type
15.4.3.7. choices
15.4.3.8. required
15.4.3.9. help
15.4.3.10. metavar
15.4.3.11. dest
15.4.3.12. Action classes
15.4.4. The parse_args() method
15.4.4.1. Option value syntax
15.4.4.2. Invalid arguments
15.4.4.3. Arguments containing -
15.4.4.4. Argument abbreviations (prefix matching)
15.4.4.5. Beyond sys.argv
15.4.4.6. The Namespace object
15.4.5. Other utilities
15.4.5.1. Sub-commands
15.4.5.2. FileType objects
15.4.5.3. Argument groups
15.4.5.4. Mutual exclusion
15.4.5.5. Parser defaults
15.4.5.6. Printing help
15.4.5.7. Partial parsing
15.4.5.8. Customizing file parsing
15.4.5.9. Exiting methods
15.4.6. Upgrading optparse code
15.5. optparse — Parser for command line options
15.5.1. Background
15.5.1.1. Terminology
15.5.1.2. What are options for?
15.5.1.3. What are positional arguments for?
15.5.2. Tutorial
15.5.2.1. Understanding option actions
15.5.2.2. The store action
15.5.2.3. Handling boolean (flag) options
15.5.2.4. Other actions
15.5.2.5. Default values
15.5.2.6. Generating help
15.5.2.6.1. Grouping Options
15.5.2.7. Printing a version string
15.5.2.8. How optparse handles errors
15.5.2.9. Putting it all together
15.5.3. Reference Guide
15.5.3.1. Creating the parser
15.5.3.2. Populating the parser
15.5.3.3. Defining options
15.5.3.4. Option attributes
15.5.3.5. Standard option actions
15.5.3.6. Standard option types
15.5.3.7. Parsing arguments
15.5.3.8. Querying and manipulating your option parser
15.5.3.9. Conflicts between options
15.5.3.10. Cleanup
15.5.3.11. Other methods
15.5.4. Option Callbacks
15.5.4.1. Defining a callback option
15.5.4.2. How callbacks are called
15.5.4.3. Raising errors in a callback
15.5.4.4. Callback example 1: trivial callback
15.5.4.5. Callback example 2: check option order
15.5.4.6. Callback example 3: check option order (generalized)
15.5.4.7. Callback example 4: check arbitrary condition
15.5.4.8. Callback example 5: fixed arguments
15.5.4.9. Callback example 6: variable arguments
15.5.5. Extending optparse
15.5.5.1. Adding new types
15.5.5.2. Adding new actions
15.6. getopt — C-style parser for command line options
15.7. logging — Logging facility for Python
15.7.1. Logger Objects
15.7.2. Logging Levels
15.7.3. Handler Objects
15.7.4. Formatter Objects
15.7.5. Filter Objects
15.7.6. LogRecord Objects
15.7.7. LogRecord attributes
15.7.8. LoggerAdapter Objects
15.7.9. Thread Safety
15.7.10. Module-Level Functions
15.7.11. Integration with the warnings module
15.8. logging.config — Logging configuration
15.8.1. Configuration functions
15.8.2. Configuration dictionary schema
15.8.2.1. Dictionary Schema Details
15.8.2.2. Incremental Configuration
15.8.2.3. Object connections
15.8.2.4. User-defined objects
15.8.2.5. Access to external objects
15.8.2.6. Access to internal objects
15.8.2.7. Import resolution and custom importers
15.8.3. Configuration file format
15.9. logging.handlers — Logging handlers
15.9.1. StreamHandler
15.9.2. FileHandler
15.9.3. NullHandler
15.9.4. WatchedFileHandler
15.9.5. RotatingFileHandler
15.9.6. TimedRotatingFileHandler
15.9.7. SocketHandler
15.9.8. DatagramHandler
15.9.9. SysLogHandler
15.9.10. NTEventLogHandler
15.9.11. SMTPHandler
15.9.12. MemoryHandler
15.9.13. HTTPHandler
15.10. getpass — Portable password input
15.11. curses — Terminal handling for character-cell displays
15.11.1. Functions
15.11.2. Window Objects
15.11.3. Constants
15.12. curses.textpad — Text input widget for curses programs
15.12.1. Textbox objects
15.13. curses.ascii — Utilities for ASCII characters
15.14. curses.panel — A panel stack extension for curses
15.14.1. Functions
15.14.2. Panel Objects
15.15. platform — Access to underlying platform’s identifying data
15.15.1. Cross Platform
15.15.2. Java Platform
15.15.3. Windows Platform
15.15.3.1. Win95/98 specific
15.15.4. Mac OS Platform
15.15.5. Unix Platforms
15.16. errno — Standard errno system symbols
15.17. ctypes — A foreign function library for Python
15.17.1. ctypes tutorial
15.17.1.1. Loading dynamic link libraries
15.17.1.2. Accessing functions from loaded dlls
15.17.1.3. Calling functions
15.17.1.4. Fundamental data types
15.17.1.5. Calling functions, continued
15.17.1.6. Calling functions with your own custom data types
15.17.1.7. Specifying the required argument types (function prototypes)
15.17.1.8. Return types
15.17.1.9. Passing pointers (or: passing parameters by reference)
15.17.1.10. Structures and unions
15.17.1.11. Structure/union alignment and byte order
15.17.1.12. Bit fields in structures and unions
15.17.1.13. Arrays
15.17.1.14. Pointers
15.17.1.15. Type conversions
15.17.1.16. Incomplete Types
15.17.1.17. Callback functions
15.17.1.18. Accessing values exported from dlls
15.17.1.19. Surprises
15.17.1.20. Variable-sized data types
15.17.2. ctypes reference
15.17.2.1. Finding shared libraries
15.17.2.2. Loading shared libraries
15.17.2.3. Foreign functions
15.17.2.4. Function prototypes
15.17.2.5. Utility functions
15.17.2.6. Data types
15.17.2.7. Fundamental data types
15.17.2.8. Structured data types
15.17.2.9. Arrays and pointers
16. Optional Operating System Services
16.1. select — Waiting for I/O completion
16.1.1. Edge and Level Trigger Polling (epoll) Objects
16.1.2. Polling Objects
16.1.3. Kqueue Objects
16.1.4. Kevent Objects
16.2. threading — Higher-level threading interface
16.2.1. Thread Objects
16.2.2. Lock Objects
16.2.3. RLock Objects
16.2.4. Condition Objects
16.2.5. Semaphore Objects
16.2.5.1. Semaphore Example
16.2.6. Event Objects
16.2.7. Timer Objects
16.2.8. Using locks, conditions, and semaphores in the with statement
16.2.9. Importing in threaded code
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.6.1. Introduction
16.6.1.1. The Process class
16.6.1.2. Exchanging objects between processes
16.6.1.3. Synchronization between processes
16.6.1.4. Sharing state between processes
16.6.1.5. Using a pool of workers
16.6.2. Reference
16.6.2.1. Process and exceptions
16.6.2.2. Pipes and Queues
16.6.2.3. Miscellaneous
16.6.2.4. Connection Objects
16.6.2.5. Synchronization primitives
16.6.2.6. Shared ctypes Objects
16.6.2.6.1. The multiprocessing.sharedctypes module
16.6.2.7. Managers
16.6.2.7.1. Customized managers
16.6.2.7.2. Using a remote manager
16.6.2.8. Proxy Objects
16.6.2.8.1. Cleanup
16.6.2.9. Process Pools
16.6.2.10. Listeners and Clients
16.6.2.10.1. Address Formats
16.6.2.11. Authentication keys
16.6.2.12. Logging
16.6.2.13. The multiprocessing.dummy module
16.6.3. Programming guidelines
16.6.3.1. All platforms
16.6.3.2. Windows
16.6.4. Examples
16.7. mmap — Memory-mapped file support
16.8. readline — GNU readline interface
16.8.1. Init file
16.8.2. Line buffer
16.8.3. History file
16.8.4. History list
16.8.5. Startup hooks
16.8.6. Completion
16.8.7. Example
16.9. rlcompleter — Completion function for GNU readline
16.9.1. Completer Objects
17. Interprocess Communication and Networking
17.1. subprocess — Subprocess management
17.1.1. Using the subprocess Module
17.1.1.1. Frequently Used Arguments
17.1.1.2. Popen Constructor
17.1.1.3. Exceptions
17.1.1.4. Security
17.1.2. Popen Objects
17.1.3. Windows Popen Helpers
17.1.3.1. Constants
17.1.4. Replacing Older Functions with the subprocess Module
17.1.4.1. Replacing /bin/sh shell backquote
17.1.4.2. Replacing shell pipeline
17.1.4.3. Replacing os.system()
17.1.4.4. Replacing the os.spawn family
17.1.4.5. Replacing os.popen(), os.popen2(), os.popen3()
17.1.4.6. Replacing functions from the popen2 module
17.1.5. Notes
17.1.5.1. Converting an argument sequence to a string on Windows
17.2. socket — Low-level networking interface
17.2.1. Socket Objects
17.2.2. Example
17.3. ssl — TLS/SSL wrapper for socket objects
17.3.1. Functions, Constants, and Exceptions
17.3.1.1. Socket creation
17.3.1.2. Context creation
17.3.1.3. Random generation
17.3.1.4. Certificate handling
17.3.1.5. Constants
17.3.2. SSL Sockets
17.3.3. SSL Contexts
17.3.4. Certificates
17.3.4.1. Certificate chains
17.3.4.2. CA certificates
17.3.4.3. Combined key and certificate
17.3.4.4. Self-signed certificates
17.3.5. Examples
17.3.5.1. Testing for SSL support
17.3.5.2. Client-side operation
17.3.5.3. Server-side operation
17.3.6. Notes on non-blocking sockets
17.3.7. Security considerations
17.3.7.1. Best defaults
17.3.7.2. Manual settings
17.3.7.2.1. Verifying certificates
17.3.7.2.2. Protocol versions
17.3.7.2.3. Cipher selection
17.3.7.3. Multi-processing
17.3.8. LibreSSL support
17.4. signal — Set handlers for asynchronous events
17.4.1. Example
17.5. popen2 — Subprocesses with accessible I/O streams
17.5.1. Popen3 and Popen4 Objects
17.5.2. Flow Control Issues
17.6. asyncore — Asynchronous socket handler
17.6.1. asyncore Example basic HTTP client
17.6.2. asyncore Example basic echo server
17.7. asynchat — Asynchronous socket command/response handler
17.7.1. asynchat - Auxiliary Classes
17.7.2. asynchat Example
18. Internet Data Handling
18.1. email — An email and MIME handling package
18.1.1. email.message: Representing an email message
18.1.2. email.parser: Parsing email messages
18.1.2.1. FeedParser API
18.1.2.2. Parser class API
18.1.2.3. Additional notes
18.1.3. email.generator: Generating MIME documents
18.1.4. email.mime: Creating email and MIME objects from scratch
18.1.5. email.header: Internationalized headers
18.1.6. email.charset: Representing character sets
18.1.7. email.encoders: Encoders
18.1.8. email.errors: Exception and Defect classes
18.1.9. email.utils: Miscellaneous utilities
18.1.10. email.iterators: Iterators
18.1.11. email: Examples
18.1.12. Package History
18.1.13. Differences from mimelib
18.2. json — JSON encoder and decoder
18.2.1. Basic Usage
18.2.2. Encoders and Decoders
18.2.3. Standard Compliance and Interoperability
18.2.3.1. Character Encodings
18.2.3.2. Infinite and NaN Number Values
18.2.3.3. Repeated Names Within an Object
18.2.3.4. Top-level Non-Object, Non-Array Values
18.2.3.5. Implementation Limitations
18.3. mailcap — Mailcap file handling
18.4. mailbox — Manipulate mailboxes in various formats
18.4.1. Mailbox objects
18.4.1.1. Maildir
18.4.1.2. mbox
18.4.1.3. MH
18.4.1.4. Babyl
18.4.1.5. MMDF
18.4.2. Message objects
18.4.2.1. MaildirMessage
18.4.2.2. mboxMessage
18.4.2.3. MHMessage
18.4.2.4. BabylMessage
18.4.2.5. MMDFMessage
18.4.3. Exceptions
18.4.4. Deprecated classes and methods
18.4.5. Examples
18.5. mhlib — Access to MH mailboxes
18.5.1. MH Objects
18.5.2. Folder Objects
18.5.3. Message Objects
18.6. mimetools — Tools for parsing MIME messages
18.6.1. Additional Methods of Message Objects
18.7. mimetypes — Map filenames to MIME types
18.7.1. MimeTypes Objects
18.8. MimeWriter — Generic MIME file writer
18.8.1. MimeWriter Objects
18.9. mimify — MIME processing of mail messages
18.10. multifile — Support for files containing distinct parts
18.10.1. MultiFile Objects
18.10.2. MultiFile Example
18.11. rfc822 — Parse RFC 2822 mail headers
18.11.1. Message Objects
18.11.2. AddressList Objects
18.12. base64 — RFC 3548: Base16, Base32, Base64 Data Encodings
18.13. binhex — Encode and decode binhex4 files
18.13.1. Notes
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.1.1. Example HTML Parser Application
19.1.2. HTMLParser Methods
19.1.3. Examples
19.2. sgmllib — Simple SGML parser
19.3. htmllib — A parser for HTML documents
19.3.1. HTMLParser Objects
19.4. htmlentitydefs — Definitions of HTML general entities
19.5. XML Processing Modules
19.6. XML vulnerabilities
19.6.1. defused packages
19.7. xml.etree.ElementTree — The ElementTree XML API
19.7.1. Tutorial
19.7.1.1. XML tree and elements
19.7.1.2. Parsing XML
19.7.1.3. Finding interesting elements
19.7.1.4. Modifying an XML File
19.7.1.5. Building XML documents
19.7.1.6. Parsing XML with Namespaces
19.7.1.7. Additional resources
19.7.2. XPath support
19.7.2.1. Example
19.7.2.2. Supported XPath syntax
19.7.3. Reference
19.7.3.1. Functions
19.7.3.2. Element Objects
19.7.3.3. ElementTree Objects
19.7.3.4. QName Objects
19.7.3.5. TreeBuilder Objects
19.7.3.6. XMLParser Objects
19.8. xml.dom — The Document Object Model API
19.8.1. Module Contents
19.8.2. Objects in the DOM
19.8.2.1. DOMImplementation Objects
19.8.2.2. Node Objects
19.8.2.3. NodeList Objects
19.8.2.4. DocumentType Objects
19.8.2.5. Document Objects
19.8.2.6. Element Objects
19.8.2.7. Attr Objects
19.8.2.8. NamedNodeMap Objects
19.8.2.9. Comment Objects
19.8.2.10. Text and CDATASection Objects
19.8.2.11. ProcessingInstruction Objects
19.8.2.12. Exceptions
19.8.3. Conformance
19.8.3.1. Type Mapping
19.8.3.2. Accessor Methods
19.9. xml.dom.minidom — Minimal DOM implementation
19.9.1. DOM Objects
19.9.2. DOM Example
19.9.3. minidom and the DOM standard
19.10. xml.dom.pulldom — Support for building partial DOM trees
19.10.1. DOMEventStream Objects
19.11. xml.sax — Support for SAX2 parsers
19.11.1. SAXException Objects
19.12. xml.sax.handler — Base classes for SAX handlers
19.12.1. ContentHandler Objects
19.12.2. DTDHandler Objects
19.12.3. EntityResolver Objects
19.12.4. ErrorHandler Objects
19.13. xml.sax.saxutils — SAX Utilities
19.14. xml.sax.xmlreader — Interface for XML parsers
19.14.1. XMLReader Objects
19.14.2. IncrementalParser Objects
19.14.3. Locator Objects
19.14.4. InputSource Objects
19.14.5. The Attributes Interface
19.14.6. The AttributesNS Interface
19.15. xml.parsers.expat — Fast XML parsing using Expat
19.15.1. XMLParser Objects
19.15.2. ExpatError Exceptions
19.15.3. Example
19.15.4. Content Model Descriptions
19.15.5. Expat error constants
20. Internet Protocols and Support
20.1. webbrowser — Convenient Web-browser controller
20.1.1. Browser Controller Objects
20.2. cgi — Common Gateway Interface support
20.2.1. Introduction
20.2.2. Using the cgi module
20.2.3. Higher Level Interface
20.2.4. Old classes
20.2.5. Functions
20.2.6. Caring about security
20.2.7. Installing your CGI script on a Unix system
20.2.8. Testing your CGI script
20.2.9. Debugging CGI scripts
20.2.10. Common problems and solutions
20.3. cgitb — Traceback manager for CGI scripts
20.4. wsgiref — WSGI Utilities and Reference Implementation
20.4.1. wsgiref.util – WSGI environment utilities
20.4.2. wsgiref.headers – WSGI response header tools
20.4.3. wsgiref.simple_server – a simple WSGI HTTP server
20.4.4. wsgiref.validate — WSGI conformance checker
20.4.5. wsgiref.handlers – server/gateway base classes
20.4.6. Examples
20.5. urllib — Open arbitrary resources by URL
20.5.1. High-level interface
20.5.2. Utility functions
20.5.3. URL Opener objects
20.5.4. urllib Restrictions
20.5.5. Examples
20.6. urllib2 — extensible library for opening URLs
20.6.1. Request Objects
20.6.2. OpenerDirector Objects
20.6.3. BaseHandler Objects
20.6.4. HTTPRedirectHandler Objects
20.6.5. HTTPCookieProcessor Objects
20.6.6. ProxyHandler Objects
20.6.7. HTTPPasswordMgr Objects
20.6.8. AbstractBasicAuthHandler Objects
20.6.9. HTTPBasicAuthHandler Objects
20.6.10. ProxyBasicAuthHandler Objects
20.6.11. AbstractDigestAuthHandler Objects
20.6.12. HTTPDigestAuthHandler Objects
20.6.13. ProxyDigestAuthHandler Objects
20.6.14. HTTPHandler Objects
20.6.15. HTTPSHandler Objects
20.6.16. FileHandler Objects
20.6.17. FTPHandler Objects
20.6.18. CacheFTPHandler Objects
20.6.19. UnknownHandler Objects
20.6.20. HTTPErrorProcessor Objects
20.6.21. Examples
20.7. httplib — HTTP protocol client
20.7.1. HTTPConnection Objects
20.7.2. HTTPResponse Objects
20.7.3. Examples
20.8. ftplib — FTP protocol client
20.8.1. FTP Objects
20.8.2. FTP_TLS Objects
20.9. poplib — POP3 protocol client
20.9.1. POP3 Objects
20.9.2. POP3 Example
20.10. imaplib — IMAP4 protocol client
20.10.1. IMAP4 Objects
20.10.2. IMAP4 Example
20.11. nntplib — NNTP protocol client
20.11.1. NNTP Objects
20.12. smtplib — SMTP protocol client
20.12.1. SMTP Objects
20.12.2. SMTP Example
20.13. smtpd — SMTP Server
20.13.1. SMTPServer Objects
20.13.2. DebuggingServer Objects
20.13.3. PureProxy Objects
20.13.4. MailmanProxy Objects
20.14. telnetlib — Telnet client
20.14.1. Telnet Objects
20.14.2. Telnet Example
20.15. uuid — UUID objects according to RFC 4122
20.15.1. Example
20.16. urlparse — Parse URLs into components
20.16.1. Results of urlparse() and urlsplit()
20.17. SocketServer — A framework for network servers
20.17.1. Server Creation Notes
20.17.2. Server Objects
20.17.3. Request Handler Objects
20.17.4. Examples
20.17.4.1. SocketServer.TCPServer Example
20.17.4.2. SocketServer.UDPServer Example
20.17.4.3. Asynchronous Mixins
20.18. BaseHTTPServer — Basic HTTP server
20.18.1. More examples
20.19. SimpleHTTPServer — Simple HTTP request handler
20.20. CGIHTTPServer — CGI-capable HTTP request handler
20.21. cookielib — Cookie handling for HTTP clients
20.21.1. CookieJar and FileCookieJar Objects
20.21.2. FileCookieJar subclasses and co-operation with web browsers
20.21.3. CookiePolicy Objects
20.21.4. DefaultCookiePolicy Objects
20.21.5. Cookie Objects
20.21.6. Examples
20.22. Cookie — HTTP state management
20.22.1. Cookie Objects
20.22.2. Morsel Objects
20.22.3. Example
20.23. xmlrpclib — XML-RPC client access
20.23.1. ServerProxy Objects
20.23.2. Boolean Objects
20.23.3. DateTime Objects
20.23.4. Binary Objects
20.23.5. Fault Objects
20.23.6. ProtocolError Objects
20.23.7. MultiCall Objects
20.23.8. Convenience Functions
20.23.9. Example of Client Usage
20.23.10. Example of Client and Server Usage
20.24. SimpleXMLRPCServer — Basic XML-RPC server
20.24.1. SimpleXMLRPCServer Objects
20.24.1.1. SimpleXMLRPCServer Example
20.24.2. CGIXMLRPCRequestHandler
20.25. DocXMLRPCServer — Self-documenting XML-RPC server
20.25.1. DocXMLRPCServer Objects
20.25.2. DocCGIXMLRPCRequestHandler
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.4.1. AU_read Objects
21.4.2. AU_write Objects
21.5. wave — Read and write WAV files
21.5.1. Wave_read Objects
21.5.2. Wave_write Objects
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
21.10.1. Audio Device Objects
21.10.2. Mixer Device Objects
22. Internationalization
22.1. gettext — Multilingual internationalization services
22.1.1. GNU gettext API
22.1.2. Class-based API
22.1.2.1. The NullTranslations class
22.1.2.2. The GNUTranslations class
22.1.2.3. Solaris message catalog support
22.1.2.4. The Catalog constructor
22.1.3. Internationalizing your programs and modules
22.1.3.1. Localizing your module
22.1.3.2. Localizing your application
22.1.3.3. Changing languages on the fly
22.1.3.4. Deferred translations
22.1.3.5. gettext() vs. lgettext()
22.1.4. Acknowledgements
22.2. locale — Internationalization services
22.2.1. Background, details, hints, tips and caveats
22.2.2. For extension writers and programs that embed Python
22.2.3. Access to message catalogs
23. Program Frameworks
23.1. cmd — Support for line-oriented command interpreters
23.1.1. Cmd Objects
23.2. shlex — Simple lexical analysis
23.2.1. shlex Objects
23.2.2. Parsing Rules
24. Graphical User Interfaces with Tk
24.1. Tkinter — Python interface to Tcl/Tk
24.1.1. Tkinter Modules
24.1.2. Tkinter Life Preserver
24.1.2.1. How To Use This Section
24.1.2.2. A Simple Hello World Program
24.1.3. A (Very) Quick Look at Tcl/Tk
24.1.4. Mapping Basic Tk into Tkinter
24.1.5. How Tk and Tkinter are Related
24.1.6. Handy Reference
24.1.6.1. Setting Options
24.1.6.2. The Packer
24.1.6.3. Packer Options
24.1.6.4. Coupling Widget Variables
24.1.6.5. The Window Manager
24.1.6.6. Tk Option Data Types
24.1.6.7. Bindings and Events
24.1.6.8. The index Parameter
24.1.6.9. Images
24.1.7. File Handlers
24.2. ttk — Tk themed widgets
24.2.1. Using Ttk
24.2.2. Ttk Widgets
24.2.3. Widget
24.2.3.1. Standard Options
24.2.3.2. Scrollable Widget Options
24.2.3.3. Label Options
24.2.3.4. Compatibility Options
24.2.3.5. Widget States
24.2.3.6. ttk.Widget
24.2.4. Combobox
24.2.4.1. Options
24.2.4.2. Virtual events
24.2.4.3. ttk.Combobox
24.2.5. Notebook
24.2.5.1. Options
24.2.5.2. Tab Options
24.2.5.3. Tab Identifiers
24.2.5.4. Virtual Events
24.2.5.5. ttk.Notebook
24.2.6. Progressbar
24.2.6.1. Options
24.2.6.2. ttk.Progressbar
24.2.7. Separator
24.2.7.1. Options
24.2.8. Sizegrip
24.2.8.1. Platform-specific notes
24.2.8.2. Bugs
24.2.9. Treeview
24.2.9.1. Options
24.2.9.2. Item Options
24.2.9.3. Tag Options
24.2.9.4. Column Identifiers
24.2.9.5. Virtual Events
24.2.9.6. ttk.Treeview
24.2.10. Ttk Styling
24.2.10.1. Layouts
24.3. Tix — Extension widgets for Tk
24.3.1. Using Tix
24.3.2. Tix Widgets
24.3.2.1. Basic Widgets
24.3.2.2. File Selectors
24.3.2.3. Hierarchical ListBox
24.3.2.4. Tabular ListBox
24.3.2.5. Manager Widgets
24.3.2.6. Image Types
24.3.2.7. Miscellaneous Widgets
24.3.2.8. Form Geometry Manager
24.3.3. Tix Commands
24.4. ScrolledText — Scrolled Text Widget
24.5. turtle — Turtle graphics for Tk
24.5.1. Introduction
24.5.2. Overview over available Turtle and Screen methods
24.5.2.1. Turtle methods
24.5.2.2. Methods of TurtleScreen/Screen
24.5.3. Methods of RawTurtle/Turtle and corresponding functions
24.5.3.1. Turtle motion
24.5.3.2. Tell Turtle’s state
24.5.3.3. Settings for measurement
24.5.3.4. Pen control
24.5.3.4.1. Drawing state
24.5.3.4.2. Color control
24.5.3.4.3. Filling
24.5.3.4.4. More drawing control
24.5.3.5. Turtle state
24.5.3.5.1. Visibility
24.5.3.5.2. Appearance
24.5.3.6. Using events
24.5.3.7. Special Turtle methods
24.5.3.8. Excursus about the use of compound shapes
24.5.4. Methods of TurtleScreen/Screen and corresponding functions
24.5.4.1. Window control
24.5.4.2. Animation control
24.5.4.3. Using screen events
24.5.4.4. Settings and special methods
24.5.4.5. Methods specific to Screen, not inherited from TurtleScreen
24.5.5. The public classes of the module turtle
24.5.6. Help and configuration
24.5.6.1. How to use help
24.5.6.2. Translation of docstrings into different languages
24.5.6.3. How to configure Screen and Turtles
24.5.7. Demo scripts
24.6. IDLE
24.6.1. Menus
24.6.1.1. File menu (Shell and Editor)
24.6.1.2. Edit menu (Shell and Editor)
24.6.1.3. Format menu (Editor window only)
24.6.1.4. Run menu (Editor window only)
24.6.1.5. Shell menu (Shell window only)
24.6.1.6. Debug menu (Shell window only)
24.6.1.7. Options menu (Shell and Editor)
24.6.1.8. Window menu (Shell and Editor)
24.6.1.9. Help menu (Shell and Editor)
24.6.1.10. Context Menus
24.6.2. Editing and navigation
24.6.2.1. Automatic indentation
24.6.2.2. Completions
24.6.2.3. Calltips
24.6.2.4. Python Shell window
24.6.2.5. Text colors
24.6.3. Startup and code execution
24.6.3.1. Command line usage
24.6.3.2. IDLE-console differences
24.6.3.3. Running without a subprocess
24.6.4. Help and preferences
24.6.4.1. Additional help sources
24.6.4.2. Setting preferences
24.6.4.3. Extensions
24.7. Other Graphical User Interface Packages
25. Development Tools
25.1. pydoc — Documentation generator and online help system
25.2. doctest — Test interactive Python examples
25.2.1. Simple Usage: Checking Examples in Docstrings
25.2.2. Simple Usage: Checking Examples in a Text File
25.2.3. How It Works
25.2.3.1. Which Docstrings Are Examined?
25.2.3.2. How are Docstring Examples Recognized?
25.2.3.3. What’s the Execution Context?
25.2.3.4. What About Exceptions?
25.2.3.5. Option Flags
25.2.3.6. Directives
25.2.3.7. Warnings
25.2.4. Basic API
25.2.5. Unittest API
25.2.6. Advanced API
25.2.6.1. DocTest Objects
25.2.6.2. Example Objects
25.2.6.3. DocTestFinder objects
25.2.6.4. DocTestParser objects
25.2.6.5. DocTestRunner objects
25.2.6.6. OutputChecker objects
25.2.7. Debugging
25.2.8. Soapbox
25.3. unittest — Unit testing framework
25.3.1. Basic example
25.3.2. Command-Line Interface
25.3.2.1. Command-line options
25.3.3. Test Discovery
25.3.4. Organizing test code
25.3.5. Re-using old test code
25.3.6. Skipping tests and expected failures
25.3.7. Classes and functions
25.3.7.1. Test cases
25.3.7.1.1. Deprecated aliases
25.3.7.2. Grouping tests
25.3.7.3. Loading and running tests
25.3.7.3.1. load_tests Protocol
25.3.8. Class and Module Fixtures
25.3.8.1. setUpClass and tearDownClass
25.3.8.2. setUpModule and tearDownModule
25.3.9. Signal Handling
25.4. 2to3 - Automated Python 2 to 3 code translation
25.4.1. Using 2to3
25.4.2. Fixers
25.4.3. lib2to3 - 2to3’s library
25.5. test — Regression tests package for Python
25.5.1. Writing Unit Tests for the test package
25.5.2. Running tests using the command-line interface
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.4.1. Introduction to the profilers
26.4.2. Instant User’s Manual
26.4.3. profile and cProfile Module Reference
26.4.4. The Stats Class
26.4.5. What Is Deterministic Profiling?
26.4.6. Limitations
26.4.7. Calibration
26.4.8. Using a custom timer
26.5. hotshot — High performance logging profiler
26.5.1. Profile Objects
26.5.2. Using hotshot data
26.5.3. Example Usage
26.6. timeit — Measure execution time of small code snippets
26.6.1. Basic Examples
26.6.2. Python Interface
26.6.3. Command-Line Interface
26.6.4. Examples
26.7. trace — Trace or track Python statement execution
26.7.1. Command-Line Usage
26.7.1.1. Main options
26.7.1.2. Modifiers
26.7.1.3. Filters
26.7.2. Programmatic Interface
27. Software Packaging and Distribution
27.1. distutils — Building and installing Python modules
27.2. ensurepip — Bootstrapping the pip installer
27.2.1. Command line interface
27.2.2. Module API
28. Python Runtime Services
28.1. sys — System-specific parameters and functions
28.2. sysconfig — Provide access to Python’s configuration information
28.2.1. Configuration variables
28.2.2. Installation paths
28.2.3. Other functions
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.6.1. Warning Categories
28.6.2. The Warnings Filter
28.6.2.1. Default Warning Filters
28.6.3. Temporarily Suppressing Warnings
28.6.4. Testing Warnings
28.6.5. Updating Code For New Versions of Python
28.6.6. Available Functions
28.6.7. Available Context Managers
28.7. contextlib — Utilities for with-statement contexts
28.8. abc — Abstract Base Classes
28.9. atexit — Exit handlers
28.9.1. atexit Example
28.10. traceback — Print or retrieve a stack traceback
28.10.1. Traceback Examples
28.11. __future__ — Future statement definitions
28.12. gc — Garbage Collector interface
28.13. inspect — Inspect live objects
28.13.1. Types and members
28.13.2. Retrieving source code
28.13.3. Classes and functions
28.13.4. The interpreter stack
28.14. site — Site-specific configuration hook
28.15. user — User-specific configuration hook
28.16. fpectl — Floating point exception control
28.16.1. Example
28.16.2. Limitations and other considerations
29. Custom Python Interpreters
29.1. code — Interpreter base classes
29.1.1. Interactive Interpreter Objects
29.1.2. Interactive Console Objects
29.2. codeop — Compile Python code
30. Restricted Execution
30.1. rexec — Restricted execution framework
30.1.1. RExec Objects
30.1.2. Defining restricted environments
30.1.3. An example
30.2. Bastion — Restricting access to objects
31. Importing Modules
31.1. imp — Access the import internals
31.1.1. Examples
31.2. importlib — Convenience wrappers for __import__()
31.3. imputil — Import utilities
31.3.1. Examples
31.4. zipimport — Import modules from Zip archives
31.4.1. zipimporter Objects
31.4.2. Examples
31.5. pkgutil — Package extension utility
31.6. modulefinder — Find modules used by a script
31.6.1. Example usage of ModuleFinder
31.7. runpy — Locating and executing Python modules
32. Python Language Services
32.1. parser — Access Python parse trees
32.1.1. Creating ST Objects
32.1.2. Converting ST Objects
32.1.3. Queries on ST Objects
32.1.4. Exceptions and Error Handling
32.1.5. ST Objects
32.1.6. Example: Emulation of compile()
32.2. ast — Abstract Syntax Trees
32.2.1. Node classes
32.2.2. Abstract Grammar
32.2.3. ast Helpers
32.3. symtable — Access to the compiler’s symbol tables
32.3.1. Generating Symbol Tables
32.3.2. Examining 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.9.1. Class Objects
32.9.2. Function Objects
32.10. py_compile — Compile Python source files
32.11. compileall — Byte-compile Python libraries
32.11.1. Command-line use
32.11.2. Public functions
32.12. dis — Disassembler for Python bytecode
32.12.1. Python Bytecode Instructions
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.3.1. AST Nodes
33.3.2. Assignment nodes
33.3.3. Examples
33.4. Using Visitors to Walk ASTs
33.5. Bytecode Generation
34. Miscellaneous Services
34.1. formatter — Generic output formatting
34.1.1. The Formatter Interface
34.1.2. Formatter Implementations
34.1.3. The Writer Interface
34.1.4. Writer Implementations
35. MS Windows Specific Services
35.1. msilib — Read and write Microsoft Installer files
35.1.1. Database Objects
35.1.2. View Objects
35.1.3. Summary Information Objects
35.1.4. Record Objects
35.1.5. Errors
35.1.6. CAB Objects
35.1.7. Directory Objects
35.1.8. Features
35.1.9. GUI classes
35.1.10. Precomputed tables
35.2. msvcrt — Useful routines from the MS VC++ runtime
35.2.1. File Operations
35.2.2. Console I/O
35.2.3. Other Functions
35.3. _winreg — Windows registry access
35.3.1. Constants
35.3.1.1. HKEY_* Constants
35.3.1.2. Access Rights
35.3.1.2.1. 64-bit Specific
35.3.1.3. Value Types
35.3.2. Registry Handle Objects
35.4. winsound — Sound-playing interface for Windows
36. Unix Specific Services
36.1. posix — The most common POSIX system calls
36.1.1. Large File Support
36.1.2. Notable Module Contents
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.6.1. Dl Objects
36.7. termios — POSIX style tty control
36.7.1. Example
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.11.1. Template Objects
36.12. posixfile — File-like objects with locking support
36.13. resource — Resource usage information
36.13.1. Resource Limits
36.13.2. Resource Usage
36.14. nis — Interface to Sun’s NIS (Yellow Pages)
36.15. syslog — Unix syslog library routines
36.15.1. Examples
36.15.1.1. Simple example
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.1.1. IC Objects
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.5.1. ProgressBar Objects
37.6. FrameWork — Interactive application framework
37.6.1. Application Objects
37.6.2. Window Objects
37.6.3. ControlsWindow Object
37.6.4. ScrolledWindow Object
37.6.5. DialogWindow Objects
37.7. autoGIL — Global Interpreter Lock handling in event loops
37.8. Mac OS Toolbox Modules
37.8.1. Carbon.AE — Apple Events
37.8.2. Carbon.AH — Apple Help
37.8.3. Carbon.App — Appearance Manager
37.8.4. Carbon.Appearance — Appearance Manager constants
37.8.5. Carbon.CF — Core Foundation
37.8.6. Carbon.CG — Core Graphics
37.8.7. Carbon.CarbonEvt — Carbon Event Manager
37.8.8. Carbon.CarbonEvents — Carbon Event Manager constants
37.8.9. Carbon.Cm — Component Manager
37.8.10. Carbon.Components — Component Manager constants
37.8.11. Carbon.ControlAccessor — Control Manager accssors
37.8.12. Carbon.Controls — Control Manager constants
37.8.13. Carbon.CoreFounation — CoreFounation constants
37.8.14. Carbon.CoreGraphics — CoreGraphics constants
37.8.15. Carbon.Ctl — Control Manager
37.8.16. Carbon.Dialogs — Dialog Manager constants
37.8.17. Carbon.Dlg — Dialog Manager
37.8.18. Carbon.Drag — Drag and Drop Manager
37.8.19. Carbon.Dragconst — Drag and Drop Manager constants
37.8.20. Carbon.Events — Event Manager constants
37.8.21. Carbon.Evt — Event Manager
37.8.22. Carbon.File — File Manager
37.8.23. Carbon.Files — File Manager constants
37.8.24. Carbon.Fm — Font Manager
37.8.25. Carbon.Folder — Folder Manager
37.8.26. Carbon.Folders — Folder Manager constants
37.8.27. Carbon.Fonts — Font Manager constants
37.8.28. Carbon.Help — Help Manager
37.8.29. Carbon.IBCarbon — Carbon InterfaceBuilder
37.8.30. Carbon.IBCarbonRuntime — Carbon InterfaceBuilder constants
37.8.31. Carbon.Icn — Carbon Icon Manager
37.8.32. Carbon.Icons — Carbon Icon Manager constants
37.8.33. Carbon.Launch — Carbon Launch Services
37.8.34. Carbon.LaunchServices — Carbon Launch Services constants
37.8.35. Carbon.List — List Manager
37.8.36. Carbon.Lists — List Manager constants
37.8.37. Carbon.MacHelp — Help Manager constants
37.8.38. Carbon.MediaDescr — Parsers and generators for Quicktime Media descriptors
37.8.39. Carbon.Menu — Menu Manager
37.8.40. Carbon.Menus — Menu Manager constants
37.8.41. Carbon.Mlte — MultiLingual Text Editor
37.8.42. Carbon.OSA — Carbon OSA Interface
37.8.43. Carbon.OSAconst — Carbon OSA Interface constants
37.8.44. Carbon.QDOffscreen — QuickDraw Offscreen constants
37.8.45. Carbon.Qd — QuickDraw
37.8.46. Carbon.Qdoffs — QuickDraw Offscreen
37.8.47. Carbon.Qt — QuickTime
37.8.48. Carbon.QuickDraw — QuickDraw constants
37.8.49. Carbon.QuickTime — QuickTime constants
37.8.50. Carbon.Res — Resource Manager and Handles
37.8.51. Carbon.Resources — Resource Manager and Handles constants
37.8.52. Carbon.Scrap — Scrap Manager
37.8.53. Carbon.Snd — Sound Manager
37.8.54. Carbon.Sound — Sound Manager constants
37.8.55. Carbon.TE — TextEdit
37.8.56. Carbon.TextEdit — TextEdit constants
37.8.57. Carbon.Win — Window Manager
37.8.58. Carbon.Windows — Window Manager constants
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
38.5.1. AEServer Objects
39. SGI IRIX Specific Services
39.1. al — Audio functions on the SGI
39.1.1. Configuration Objects
39.1.2. Port Objects
39.2. AL — Constants used with the al module
39.3. cd — CD-ROM access on SGI systems
39.3.1. Player Objects
39.3.2. Parser Objects
39.4. fl — FORMS library for graphical user interfaces
39.4.1. Functions Defined in Module fl
39.4.2. Form Objects
39.4.3. FORMS Objects
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.1.1. Audio Device Objects
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.4.1. applesingle — AppleSingle decoder
41.4.2. buildtools — Helper module for BuildApplet and Friends
41.4.3. cfmfile — Code Fragment Resource module
41.4.4. icopen — Internet Config replacement for open()
41.4.5. macerrors — Mac OS Errors
41.4.6. macresource — Locate script resources
41.4.7. Nav — NavServices calls
41.4.8. PixMapWrapper — Wrapper for PixMap objects
41.4.9. videoreader — Read QuickTime movies
41.4.10. W — Widgets built on FrameWork
41.5. Obsolete
41.6. SGI-specific Extension modules
Extending and Embedding the Python Interpreter
1. Extending Python with C or C++
1.1. A Simple Example
1.2. Intermezzo: Errors and Exceptions
1.3. Back to the Example
1.4. The Module’s Method Table and Initialization Function
1.5. Compilation and Linkage
1.6. Calling Python Functions from C
1.7. Extracting Parameters in Extension Functions
1.8. Keyword Parameters for Extension Functions
1.9. Building Arbitrary Values
1.10. Reference Counts
1.10.1. Reference Counting in Python
1.10.2. Ownership Rules
1.10.3. Thin Ice
1.10.4. NULL Pointers
1.11. Writing Extensions in C++
1.12. Providing a C API for an Extension Module
2. Defining New Types
2.1. The Basics
2.1.1. Adding data and methods to the Basic example
2.1.2. Providing finer control over data attributes
2.1.3. Supporting cyclic garbage collection
2.1.4. Subclassing other types
2.2. Type Methods
2.2.1. Finalization and De-allocation
2.2.2. Object Presentation
2.2.3. Attribute Management
2.2.3.1. Generic Attribute Management
2.2.3.2. Type-specific Attribute Management
2.2.4. Object Comparison
2.2.5. Abstract Protocol Support
2.2.6. Weak Reference Support
2.2.7. More Suggestions
3. Building C and C++ Extensions with distutils
3.1. Distributing your extension modules
4. Building C and C++ Extensions on Windows
4.1. A Cookbook Approach
4.2. Differences Between Unix and Windows
4.3. Using DLLs in Practice
5. Embedding Python in Another Application
5.1. Very High Level Embedding
5.2. Beyond Very High Level Embedding: An overview
5.3. Pure Embedding
5.4. Extending Embedded Python
5.5. Embedding Python in C++
5.6. Compiling and Linking under Unix-like systems
Python/C API Reference Manual
Introduction
Include Files
Objects, Types and Reference Counts
Reference Counts
Reference Count Details
Types
Exceptions
Embedding Python
Debugging Builds
The Very High Level Layer
Reference Counting
Exception Handling
Unicode Exception Objects
Recursion Control
Standard Exceptions
Standard Warning Categories
String Exceptions
Utilities
Operating System Utilities
System Functions
Process Control
Importing Modules
Data marshalling support
Parsing arguments and building values
String conversion and formatting
Reflection
Codec registry and support functions
Codec lookup API
Registry API for Unicode encoding error handlers
Abstract Objects Layer
Object Protocol
Number Protocol
Sequence Protocol
Mapping Protocol
Iterator Protocol
Old Buffer Protocol
Concrete Objects Layer
Fundamental Objects
Type Objects
The None Object
Numeric Objects
Plain Integer Objects
Boolean Objects
Long Integer Objects
Floating Point Objects
Complex Number Objects
Complex Numbers as C Structures
Complex Numbers as Python Objects
Sequence Objects
Byte Array Objects
Type check macros
Direct API functions
Macros
String/Bytes Objects
Unicode Objects and Codecs
Unicode Objects
Unicode Type
Unicode Character Properties
Plain Py_UNICODE
wchar_t Support
Built-in Codecs
Generic Codecs
UTF-8 Codecs
UTF-32 Codecs
UTF-16 Codecs
UTF-7 Codecs
Unicode-Escape Codecs
Raw-Unicode-Escape Codecs
Latin-1 Codecs
ASCII Codecs
Character Map Codecs
MBCS codecs for Windows
Methods & Slots
Methods and Slot Functions
Buffers and Memoryview Objects
The new-style Py_buffer struct
Buffer related functions
MemoryView objects
Old-style buffer objects
Tuple Objects
List Objects
Mapping Objects
Dictionary Objects
Other Objects
Class and Instance Objects
Function Objects
Method Objects
File Objects
Module Objects
Iterator Objects
Descriptor Objects
Slice Objects
Ellipsis Object
Weak Reference Objects
Capsules
CObjects
Cell Objects
Generator Objects
DateTime Objects
Set Objects
Code Objects
Initialization, Finalization, and Threads
Initializing and finalizing the interpreter
Process-wide parameters
Thread State and the Global Interpreter Lock
Releasing the GIL from extension code
Non-Python created threads
High-level API
Low-level API
Sub-interpreter support
Bugs and caveats
Asynchronous Notifications
Profiling and Tracing
Advanced Debugger Support
Memory Management
Overview
Memory Interface
Object allocators
The pymalloc allocator
Examples
Object Implementation Support
Allocating Objects on the Heap
Common Object Structures
Type Objects
Number Object Structures
Mapping Object Structures
Sequence Object Structures
Buffer Object Structures
Supporting Cyclic Garbage Collection
Distributing Python Modules
Key terms
Open source licensing and collaboration
Installing the tools
Reading the guide
How do I…?
… choose a name for my project?
… create and distribute binary extensions?
Installing Python Modules
Key terms
Basic usage
How do I …?
… install pip in versions of Python prior to Python 2.7.9?
… install packages just for the current user?
… install scientific Python packages?
… work with multiple versions of Python installed in parallel?
Common installation issues
Installing into the system Python on Linux
Pip not installed
Installing binary extensions
Python HOWTOs
Porting Python 2 Code to Python 3
The Short Explanation
Details
Drop support for Python 2.6 and older
Make sure you specify the proper version support in your setup.py file
Have good test coverage
Learn the differences between Python 2 & 3
Update your code
Division
Text versus binary data
Use feature detection instead of version detection
Prevent compatibility regressions
Check which dependencies block your transition
Update your setup.py file to denote Python 3 compatibility
Use continuous integration to stay compatible
Consider using optional static type checking
Porting Extension Modules to Python 3
Conditional compilation
Changes to Object APIs
str/unicode Unification
long/int Unification
Module initialization and state
CObject replaced with Capsule
Other options
Curses Programming with Python
What is curses?
The Python curses module
Starting and ending a curses application
Windows and Pads
Displaying Text
Attributes and Color
User Input
For More Information
Descriptor HowTo Guide
Abstract
Definition and Introduction
Descriptor Protocol
Invoking Descriptors
Descriptor Example
Properties
Functions and Methods
Static Methods and Class Methods
Idioms and Anti-Idioms in Python
Language Constructs You Should Not Use
from module import *
Inside Function Definitions
At Module Level
When It Is Just Fine
Unadorned exec, execfile() and friends
from module import name1, name2
except:
Exceptions
Using the Batteries
Using Backslash to Continue Statements
Functional Programming HOWTO
Introduction
Formal provability
Modularity
Ease of debugging and testing
Composability
Iterators
Data Types That Support Iterators
Generator expressions and list comprehensions
Generators
Passing values into a generator
Built-in functions
Small functions and the lambda expression
The itertools module
Creating new iterators
Calling functions on elements
Selecting elements
Grouping elements
The functools module
The operator module
Revision History and Acknowledgements
References
General
Python-specific
Python documentation
Logging HOWTO
Basic Logging Tutorial
When to use logging
A simple example
Logging to a file
Logging from multiple modules
Logging variable data
Changing the format of displayed messages
Displaying the date/time in messages
Next Steps
Advanced Logging Tutorial
Logging Flow
Loggers
Handlers
Formatters
Configuring Logging
What happens if no configuration is provided
Configuring Logging for a Library
Logging Levels
Custom Levels
Useful Handlers
Exceptions raised during logging
Using arbitrary objects as messages
Optimization
Logging Cookbook
Using logging in multiple modules
Logging from multiple threads
Multiple handlers and formatters
Logging to multiple destinations
Configuration server example
Sending and receiving logging events across a network
Adding contextual information to your logging output
Using LoggerAdapters to impart contextual information
Using objects other than dicts to pass contextual information
Using Filters to impart contextual information
Logging to a single file from multiple processes
Using file rotation
An example dictionary-based configuration
Inserting a BOM into messages sent to a SysLogHandler
Implementing structured logging
Customizing handlers with dictConfig()
Configuring filters with dictConfig()
Customized exception formatting
Speaking logging messages
Buffering logging messages and outputting them conditionally
Formatting times using UTC (GMT) via configuration
Using a context manager for selective logging
Regular Expression HOWTO
Introduction
Simple Patterns
Matching Characters
Repeating Things
Using Regular Expressions
Compiling Regular Expressions
The Backslash Plague
Performing Matches
Module-Level Functions
Compilation Flags
More Pattern Power
More Metacharacters
Grouping
Non-capturing and Named Groups
Lookahead Assertions
Modifying Strings
Splitting Strings
Search and Replace
Common Problems
Use String Methods
match() versus search()
Greedy versus Non-Greedy
Using re.VERBOSE
Feedback
Socket Programming HOWTO
Sockets
History
Creating a Socket
IPC
Using a Socket
Binary Data
Disconnecting
When Sockets Die
Non-blocking Sockets
Performance
Sorting HOW TO
Sorting Basics
Key Functions
Operator Module Functions
Ascending and Descending
Sort Stability and Complex Sorts
The Old Way Using Decorate-Sort-Undecorate
The Old Way Using the cmp Parameter
Odd and Ends
Unicode HOWTO
Introduction to Unicode
History of Character Codes
Definitions
Encodings
References
Python 2.x’s Unicode Support
The Unicode Type
Unicode Literals in Python Source Code
Unicode Properties
References
Reading and Writing Unicode Data
Unicode filenames
Tips for Writing Unicode-aware Programs
References
Revision History and Acknowledgements
HOWTO Fetch Internet Resources Using urllib2
Introduction
Fetching URLs
Data
Headers
Handling Exceptions
URLError
HTTPError
Error Codes
Wrapping it Up
Number 1
Number 2
info and geturl
Openers and Handlers
Basic Authentication
Proxies
Sockets and Layers
Footnotes
HOWTO Use Python in the web
The Low-Level View
Common Gateway Interface
Simple script for testing CGI
Setting up CGI on your own server
Common problems with CGI scripts
mod_python
FastCGI and SCGI
Setting up FastCGI
mod_wsgi
Step back: WSGI
WSGI Servers
Case study: MoinMoin
Model-View-Controller
Ingredients for Websites
Templates
Data persistence
Frameworks
Some notable frameworks
Django
TurboGears
Zope
Other notable frameworks
Argparse Tutorial
Concepts
The basics
Introducing Positional arguments
Introducing Optional arguments
Short options
Combining Positional and Optional arguments
Getting a little more advanced
Conflicting options
Conclusion
Python Frequently Asked Questions
General Python FAQ
General Information
Python in the real world
Upgrading Python
Programming FAQ
General Questions
Core Language
Numbers and strings
Sequences (Tuples/Lists)
Dictionaries
Objects
Modules
Design and History FAQ
Why does Python use indentation for grouping of statements?
Why am I getting strange results with simple arithmetic operations?
Why are floating point calculations so inaccurate?
Why are Python strings immutable?
Why must ‘self’ be used explicitly in method definitions and calls?
Why can’t I use an assignment in an expression?
Why does Python use methods for some functionality (e.g. list.index()) but functions for other (e.g. len(list))?
Why is join() a string method instead of a list or tuple method?
How fast are exceptions?
Why isn’t there a switch or case statement in Python?
Can’t you emulate threads in the interpreter instead of relying on an OS-specific thread implementation?
Why can’t lambda expressions contain statements?
Can Python be compiled to machine code, C or some other language?
How does Python manage memory?
Why isn’t all memory freed when Python exits?
Why are there separate tuple and list data types?
How are lists implemented in CPython?
How are dictionaries implemented in CPython?
Why must dictionary keys be immutable?
Why doesn’t list.sort() return the sorted list?
How do you specify and enforce an interface spec in Python?
Why is there no goto?
Why can’t raw strings (r-strings) end with a backslash?
Why doesn’t Python have a “with” statement for attribute assignments?
Why are colons required for the if/while/def/class statements?
Why does Python allow commas at the end of lists and tuples?
Library and Extension FAQ
General Library Questions
Common tasks
Threads
Input and Output
Network/Internet Programming
Databases
Mathematics and Numerics
Extending/Embedding FAQ
Can I create my own functions in C?
Can I create my own functions in C++?
Writing C is hard; are there any alternatives?
How can I execute arbitrary Python statements from C?
How can I evaluate an arbitrary Python expression from C?
How do I extract C values from a Python object?
How do I use Py_BuildValue() to create a tuple of arbitrary length?
How do I call an object’s method from C?
How do I catch the output from PyErr_Print() (or anything that prints to stdout/stderr)?
How do I access a module written in Python from C?
How do I interface to C++ objects from Python?
I added a module using the Setup file and the make fails; why?
How do I debug an extension?
I want to compile a Python module on my Linux system, but some files are missing. Why?
What does “SystemError: _PyImport_FixupExtension: module yourmodule not loaded” mean?
How do I tell “incomplete input” from “invalid input”?
How do I find undefined g++ symbols __builtin_new or __pure_virtual?
Can I create an object class with some methods implemented in C and others in Python (e.g. through inheritance)?
When importing module X, why do I get “undefined symbol: PyUnicodeUCS2*”?
Python on Windows FAQ
How do I run a Python program under Windows?
How do I make Python scripts executable?
Why does Python sometimes take so long to start?
How do I make an executable from a Python script?
Is a *.pyd file the same as a DLL?
How can I embed Python into a Windows application?
How do I keep editors from inserting tabs into my Python source?
How do I check for a keypress without blocking?
How do I emulate os.kill() in Windows?
How do I extract the downloaded documentation on Windows?
Graphic User Interface FAQ
What platform-independent GUI toolkits exist for Python?
What platform-specific GUI toolkits exist for Python?
Tkinter questions
“Why is Python Installed on my Computer?” FAQ
What is Python?
Why is Python installed on my machine?
Can I delete Python?
Glossary
About these documents
Contributors to the Python Documentation
Reporting Bugs
Documentation bugs
Using the Python issue tracker
Getting started contributing to Python yourself
Copyright
History and License
History of the software
Terms and conditions for accessing or otherwise using Python
PSF LICENSE AGREEMENT FOR PYTHON 2.7.18
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
Licenses and Acknowledgements for Incorporated Software
Mersenne Twister
Sockets
Floating point exception control
MD5 message digest algorithm
Asynchronous socket services
Cookie management
Execution tracing
UUencode and UUdecode functions
XML Remote Procedure Calls
test_epoll
Select kqueue
strtod and dtoa
OpenSSL
expat
libffi
zlib
中文
English
A
A
Serif
Sans
White
Sepia
Night
首页
API Docs
工具
首页
API Docs
工具
Python Frequently Asked Questions
General Python FAQ
Programming FAQ
Design and History FAQ
Library and Extension FAQ
Extending/Embedding FAQ
Python on Windows FAQ
Graphic User Interface FAQ
“Why is Python Installed on my Computer?” FAQ
Name
Python
Version
2.7.15
3.7.2rc1
Language
English
中文
Badge
Last Updated
2021-07-03T12:24:35