On this page
Python Documentation contents
- 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
- New and Improved Modules
- Build and C API Changes
- 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
- 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
- PEP 343: The ‘with’ statement
- 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
- Other Language Changes
- New and Improved Modules
- Deprecations and Removals
- Build and C API Changes
- 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
- PEP 352: Exceptions as New-Style Classes
- PEP 353: Using ssize_t as the index type
- PEP 357: The ‘__index__’ method
- Other Language Changes
- New, Improved, and Removed Modules
- Build and C API 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
- PEP 328: Multi-line Imports
- PEP 331: Locale-Independent Float/String Conversions
- Other Language Changes
- New, Improved, and Deprecated Modules
- Build and C API 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
- New, Improved, and Deprecated Modules
- Pymalloc: A Specialized Object Allocator
- Build and C API 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
- 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
- Porting to 2.0
- Extending/Embedding Changes
- Distutils: Making Modules Easy to Install
- XML Modules
- Module changes
- New modules
- IDLE Improvements
- Deleted and Deprecated Modules
- Acknowledgements
- What’s New in Python 2.7
- The Python Tutorial
- 1. Whetting Your Appetite
- 2. Using the Python Interpreter
- 3. An Informal Introduction to Python
- 4. More Control Flow Tools
- 5. Data Structures
- 6. Modules
- 7. Input and Output
- 8. Errors and Exceptions
- 9. Classes
- 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
- 12. What Now?
- 13. Interactive Input Editing and History Substitution
- 14. Floating Point Arithmetic: Issues and Limitations
- 15. Appendix
- Python Setup and Usage
- The Python Language Reference
- 1. Introduction
- 2. Lexical analysis
- 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.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
- 5. Expressions
- 5.1. Arithmetic conversions
- 5.2. Atoms
- 5.3. Primaries
- 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.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.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.13. The
global
statement - 6.14. The
exec
statement
- 7. Compound statements
- 8. Top-level components
- 9. Full Grammar specification
- The Python Standard Library
- 1. Introduction
- 2. Built-in Functions
- 3. Non-essential Built-in Functions
- 4. Built-in Constants
- 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.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. Built-in Exceptions
- 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 ofStringIO
- 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
- 7.1.
- 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 algorithm - 8.5.
bisect
— Array bisection algorithm - 8.6.
array
— Efficient arrays of numeric values - 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
— Alternaterepr()
implementation
- 8.1.
- 9. Numeric and Mathematical Modules
- 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
- 9.1.
- 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
— Interpretingstat()
results - 10.4.
statvfs
— Constants used withos.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
- 10.1.
- 11. Data Persistence
- 11.1.
pickle
— Python object serialization - 11.2.
cPickle
— A fasterpickle
- 11.3.
copy_reg
— Registerpickle
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
- 11.1.
- 12. Data Compression and Archiving
- 13. File Formats
- 14. Cryptographic Services
- 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.5.1. Background
- 15.5.2. Tutorial
- 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.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.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.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- 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.1. ctypes tutorial
- 15.1.
- 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 thethreading
module - 16.5.
dummy_thread
— Drop-in replacement for thethread
module - 16.6.
multiprocessing
— Process-based “threading” interface- 16.6.1. Introduction
- 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.7. Managers
- 16.6.2.8. Proxy Objects
- 16.6.2.9. Process Pools
- 16.6.2.10. Listeners and Clients
- 16.6.2.11. Authentication keys
- 16.6.2.12. Logging
- 16.6.2.13. The
multiprocessing.dummy
module
- 16.6.2.1.
- 16.6.3. Programming guidelines
- 16.6.4. Examples
- 16.7.
mmap
— Memory-mapped file support - 16.8.
readline
— GNU readline interface - 16.9.
rlcompleter
— Completion function for GNU readline
- 16.1.
- 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.1.