Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Python Cookbook Preface
Who This Book Is For Who This Book Is Not For Conventions Used in This Book Online Code Examples Using Code Examples Safari® Books Online How to Contact Us Acknowledgments
David Beazley’s Acknowledgments Brian Jones’ Acknowledgments
1. Data Structures and Algorithms
1.1. Unpacking a Sequence into Separate Variables
Problem Solution Discussion
1.2. Unpacking Elements from Iterables of Arbitrary Length
Problem Solution Discussion
1.3. Keeping the Last N Items
Problem Solution Discussion
1.4. Finding the Largest or Smallest N Items
Problem Solution Discussion
1.5. Implementing a Priority Queue
Problem Solution Discussion
1.6. Mapping Keys to Multiple Values in a Dictionary
Problem Solution Discussion
1.7. Keeping Dictionaries in Order
Problem Solution Discussion
1.8. Calculating with Dictionaries
Problem Solution Discussion
1.9. Finding Commonalities in Two Dictionaries
Problem Solution Discussion
1.10. Removing Duplicates from a Sequence while Maintaining Order
Problem Solution Discussion
1.11. Naming a Slice
Problem Solution Discussion
1.12. Determining the Most Frequently Occurring Items in a Sequence
Problem Solution Discussion
1.13. Sorting a List of Dictionaries by a Common Key
Problem Solution Discussion
1.14. Sorting Objects Without Native Comparison Support
Problem Solution Discussion
1.15. Grouping Records Together Based on a Field
Problem Solution Discussion
1.16. Filtering Sequence Elements
Problem Solution Discussion
1.17. Extracting a Subset of a Dictionary
Problem Solution Discussion
1.18. Mapping Names to Sequence Elements
Problem Solution Discussion
1.19. Transforming and Reducing Data at the Same Time
Problem Solution Discussion
1.20. Combining Multiple Mappings into a Single Mapping
Problem Solution Discussion
2. Strings and Text
2.1. Splitting Strings on Any of Multiple Delimiters
Problem Solution Discussion
2.2. Matching Text at the Start or End of a String
Problem Solution Discussion
2.3. Matching Strings Using Shell Wildcard Patterns
Problem Solution Discussion
2.4. Matching and Searching for Text Patterns
Problem Solution Discussion
2.5. Searching and Replacing Text
Problem Solution Discussion
2.6. Searching and Replacing Case-Insensitive Text
Problem Solution Discussion
2.7. Specifying a Regular Expression for the Shortest Match
Problem Solution Discussion
2.8. Writing a Regular Expression for Multiline Patterns
Problem Solution Discussion
2.9. Normalizing Unicode Text to a Standard Representation
Problem Solution Discussion
2.10. Working with Unicode Characters in Regular Expressions
Problem Solution Discussion
2.11. Stripping Unwanted Characters from Strings
Problem Solution Discussion
2.12. Sanitizing and Cleaning Up Text
Problem Solution Discussion
2.13. Aligning Text Strings
Problem Solution Discussion
2.14. Combining and Concatenating Strings
Problem Solution Discussion
2.15. Interpolating Variables in Strings
Problem Solution Discussion
2.16. Reformatting Text to a Fixed Number of Columns
Problem Solution Discussion
2.17. Handling HTML and XML Entities in Text
Problem Solution Discussion
2.18. Tokenizing Text
Problem Solution Discussion
2.19. Writing a Simple Recursive Descent Parser
Problem Solution Discussion
2.20. Performing Text Operations on Byte Strings
Problem Solution Discussion
3. Numbers, Dates, and Times
3.1. Rounding Numerical Values
Problem Solution Discussion
3.2. Performing Accurate Decimal Calculations
Problem Solution Discussion
3.3. Formatting Numbers for Output
Problem Solution Discussion
3.4. Working with Binary, Octal, and Hexadecimal Integers
Problem Solution Discussion
3.5. Packing and Unpacking Large Integers from Bytes
Problem Solution Discussion
3.6. Performing Complex-Valued Math
Problem Solution Discussion
3.7. Working with Infinity and NaNs
Problem Solution Discussion
3.8. Calculating with Fractions
Problem Solution Discussion
3.9. Calculating with Large Numerical Arrays
Problem Solution Discussion
3.10. Performing Matrix and Linear Algebra Calculations
Problem Solution Discussion
3.11. Picking Things at Random
Problem Solution Discussion
3.12. Converting Days to Seconds, and Other Basic Time Conversions
Problem Solution Discussion
3.13. Determining Last Friday’s Date
Problem Solution Discussion
3.14. Finding the Date Range for the Current Month
Problem Solution Discussion
3.15. Converting Strings into Datetimes
Problem Solution Discussion
3.16. Manipulating Dates Involving Time Zones
Problem Solution Discussion
4. Iterators and Generators
4.1. Manually Consuming an Iterator
Problem Solution Discussion
4.2. Delegating Iteration
Problem Solution Discussion
4.3. Creating New Iteration Patterns with Generators
Problem Solution Discussion
4.4. Implementing the Iterator Protocol
Problem Solution Discussion
4.5. Iterating in Reverse
Problem Solution Discussion
4.6. Defining Generator Functions with Extra State
Problem Solution Discussion
4.7. Taking a Slice of an Iterator
Problem Solution Discussion
4.8. Skipping the First Part of an Iterable
Problem Solution Discussion
4.9. Iterating Over All Possible Combinations or Permutations
Problem Solution Discussion
4.10. Iterating Over the Index-Value Pairs of a Sequence
Problem Solution Discussion
4.11. Iterating Over Multiple Sequences Simultaneously
Problem Solution Discussion
4.12. Iterating on Items in Separate Containers
Problem Solution Discussion
4.13. Creating Data Processing Pipelines
Problem Solution Discussion
4.14. Flattening a Nested Sequence
Problem Solution Discussion
4.15. Iterating in Sorted Order Over Merged Sorted Iterables
Problem Solution Discussion
4.16. Replacing Infinite while Loops with an Iterator
Problem Solution Discussion
5. Files and I/O
5.1. Reading and Writing Text Data
Problem Solution Discussion
5.2. Printing to a File
Problem Solution Discussion
5.3. Printing with a Different Separator or Line Ending
Problem Solution Discussion
5.4. Reading and Writing Binary Data
Problem Solution Discussion
5.5. Writing to a File That Doesn’t Already Exist
Problem Solution Discussion
5.6. Performing I/O Operations on a String
Problem Solution Discussion
5.7. Reading and Writing Compressed Datafiles
Problem Solution Discussion
5.8. Iterating Over Fixed-Sized Records
Problem Solution Discussion
5.9. Reading Binary Data into a Mutable Buffer
Problem Solution Discussion
5.10. Memory Mapping Binary Files
Problem Solution Discussion
5.11. Manipulating Pathnames
Problem Solution Discussion
5.12. Testing for the Existence of a File
Problem Solution Discussion
5.13. Getting a Directory Listing
Problem Solution Discussion
5.14. Bypassing Filename Encoding
Problem Solution Discussion
5.15. Printing Bad Filenames
Problem Solution Discussion
5.16. Adding or Changing the Encoding of an Already Open File
Problem Solution Discussion
5.17. Writing Bytes to a Text File
Problem Solution Discussion
5.18. Wrapping an Existing File Descriptor As a File Object
Problem Solution Discussion
5.19. Making Temporary Files and Directories
Problem Solution Discussion
5.20. Communicating with Serial Ports
Problem Solution Discussion
5.21. Serializing Python Objects
Problem Solution Discussion
6. Data Encoding and Processing
6.1. Reading and Writing CSV Data
Problem Solution Discussion
6.2. Reading and Writing JSON Data
Problem Solution Discussion
6.3. Parsing Simple XML Data
Problem Solution Discussion
6.4. Parsing Huge XML Files Incrementally
Problem Solution Discussion
6.5. Turning a Dictionary into XML
Problem Solution Discussion
6.6. Parsing, Modifying, and Rewriting XML
Problem Solution Discussion
6.7. Parsing XML Documents with Namespaces
Problem Solution Discussion
6.8. Interacting with a Relational Database
Problem Solution Discussion
6.9. Decoding and Encoding Hexadecimal Digits
Problem Solution Discussion
6.10. Decoding and Encoding Base64
Problem Solution Discussion
6.11. Reading and Writing Binary Arrays of Structures
Problem Solution Discussion
6.12. Reading Nested and Variable-Sized Binary Structures
Problem Solution Discussion
6.13. Summarizing Data and Performing Statistics
Problem Solution Discussion
7. Functions
7.1. Writing Functions That Accept Any Number of Arguments
Problem Solution Discussion
7.2. Writing Functions That Only Accept Keyword Arguments
Problem Solution Discussion
7.3. Attaching Informational Metadata to Function Arguments
Problem Solution Discussion
7.4. Returning Multiple Values from a Function
Problem Solution Discussion
7.5. Defining Functions with Default Arguments
Problem Solution Discussion
7.6. Defining Anonymous or Inline Functions
Problem Solution Discussion
7.7. Capturing Variables in Anonymous Functions
Problem Solution Discussion
7.8. Making an N-Argument Callable Work As a Callable with Fewer Arguments
Problem Solution Discussion
7.9. Replacing Single Method Classes with Functions
Problem Solution Discussion
7.10. Carrying Extra State with Callback Functions
Problem Solution Discussion
7.11. Inlining Callback Functions
Problem Solution Discussion
7.12. Accessing Variables Defined Inside a Closure
Problem Solution Discussion
8. Classes and Objects
8.1. Changing the String Representation of Instances
Problem Solution Discussion
8.2. Customizing String Formatting
Problem Solution Discussion
8.3. Making Objects Support the Context-Management Protocol
Problem Solution Discussion
8.4. Saving Memory When Creating a Large Number of Instances
Problem Solution Discussion
8.5. Encapsulating Names in a Class
Problem Solution Discussion
8.6. Creating Managed Attributes
Problem Solution Discussion
8.7. Calling a Method on a Parent Class
Problem Solution Discussion
8.8. Extending a Property in a Subclass
Problem Solution Discussion
8.9. Creating a New Kind of Class or Instance Attribute
Problem Solution Discussion
8.10. Using Lazily Computed Properties
Problem Solution Discussion
8.11. Simplifying the Initialization of Data Structures
Problem Solution Discussion
8.12. Defining an Interface or Abstract Base Class
Problem Solution Discussion
8.13. Implementing a Data Model or Type System
Problem Solution Discussion
8.14. Implementing Custom Containers
Problem Solution Discussion
8.15. Delegating Attribute Access
Problem Solution Discussion
8.16. Defining More Than One Constructor in a Class
Problem Solution Discussion
8.17. Creating an Instance Without Invoking init
Problem Solution Discussion
8.18. Extending Classes with Mixins
Problem Solution Discussion
8.19. Implementing Stateful Objects or State Machines
Problem Solution Discussion
8.20. Calling a Method on an Object Given the Name As a String
Problem Solution Discussion
8.21. Implementing the Visitor Pattern
Problem Solution Discussion
8.22. Implementing the Visitor Pattern Without Recursion
Problem Solution Discussion
8.23. Managing Memory in Cyclic Data Structures
Problem Solution Discussion
8.24. Making Classes Support Comparison Operations
Problem Solution Discussion
8.25. Creating Cached Instances
Problem Solution Discussion
9. Metaprogramming
9.1. Putting a Wrapper Around a Function
Problem Solution Discussion
9.2. Preserving Function Metadata When Writing Decorators
Problem Solution Discussion
9.3. Unwrapping a Decorator
Problem Solution Discussion
9.4. Defining a Decorator That Takes Arguments
Problem Solution Discussion
9.5. Defining a Decorator with User Adjustable Attributes
Problem Solution Discussion
9.6. Defining a Decorator That Takes an Optional Argument
Problem Solution Discussion
9.7. Enforcing Type Checking on a Function Using a Decorator
Problem Solution Discussion
9.8. Defining Decorators As Part of a Class
Problem Solution Discussion
9.9. Defining Decorators As Classes
Problem Solution Discussion
9.10. Applying Decorators to Class and Static Methods
Problem Solution Discussion
9.11. Writing Decorators That Add Arguments to Wrapped Functions
Problem Solution Discussion
9.12. Using Decorators to Patch Class Definitions
Problem Solution Discussion
9.13. Using a Metaclass to Control Instance Creation
Problem Solution Discussion
9.14. Capturing Class Attribute Definition Order
Problem Solution Discussion
9.15. Defining a Metaclass That Takes Optional Arguments
Problem Solution Discussion
9.16. Enforcing an Argument Signature on *args and **kwargs
Problem Solution Discussion
9.17. Enforcing Coding Conventions in Classes
Problem Solution Discussion
9.18. Defining Classes Programmatically
Problem Solution Discussion
9.19. Initializing Class Members at Definition Time
Problem Solution Discussion
9.20. Implementing Multiple Dispatch with Function Annotations
Problem Solution Discussion
9.21. Avoiding Repetitive Property Methods
Problem Solution Discussion
9.22. Defining Context Managers the Easy Way
Problem Solution Discussion
9.23. Executing Code with Local Side Effects
Problem Solution Discussion
9.24. Parsing and Analyzing Python Source
Problem Solution Discussion
9.25. Disassembling Python Byte Code
Problem Solution Discussion
10. Modules and Packages
10.1. Making a Hierarchical Package of Modules
Problem Solution Discussion
10.2. Controlling the Import of Everything
Problem Solution Discussion
10.3. Importing Package Submodules Using Relative Names
Problem Solution Discussion
10.4. Splitting a Module into Multiple Files
Problem Solution Discussion
10.5. Making Separate Directories of Code Import Under a Common Namespace
Problem Solution Discussion
10.6. Reloading Modules
Problem Solution Discussion
10.7. Making a Directory or Zip File Runnable As a Main Script
Problem Solution Discussion
10.8. Reading Datafiles Within a Package
Problem Solution Discussion
10.9. Adding Directories to sys.path
Problem Solution Discussion
10.10. Importing Modules Using a Name Given in a String
Problem Solution Discussion
10.11. Loading Modules from a Remote Machine Using Import Hooks
Problem Solution Discussion
10.12. Patching Modules on Import
Problem Solution Discussion
10.13. Installing Packages Just for Yourself
Problem Solution Discussion
10.14. Creating a New Python Environment
Problem Solution Discussion
10.15. Distributing Packages
Problem Solution Discussion
11. Network and Web Programming
11.1. Interacting with HTTP Services As a Client
Problem Solution Discussion
11.2. Creating a TCP Server
Problem Solution Discussion
11.3. Creating a UDP Server
Problem Solution Discussion
11.4. Generating a Range of IP Addresses from a CIDR Address
Problem Solution Discussion
11.5. Creating a Simple REST-Based Interface
Problem Solution Discussion
11.6. Implementing a Simple Remote Procedure Call with XML-RPC
Problem Solution Discussion
11.7. Communicating Simply Between Interpreters
Problem Solution Discussion
11.8. Implementing Remote Procedure Calls
Problem Solution Discussion
11.9. Authenticating Clients Simply
Problem Solution Discussion
11.10. Adding SSL to Network Services
Problem Solution Discussion
11.11. Passing a Socket File Descriptor Between Processes
Problem Solution Discussion
11.12. Understanding Event-Driven I/O
Problem Solution Discussion
11.13. Sending and Receiving Large Arrays
Problem Solution Discussion
12. Concurrency
12.1. Starting and Stopping Threads
Problem Solution Discussion
12.2. Determining If a Thread Has Started
Problem Solution Discussion
12.3. Communicating Between Threads
Problem Solution Discussion
12.4. Locking Critical Sections
Problem Solution Discussion
12.5. Locking with Deadlock Avoidance
Problem Solution Discussion
12.6. Storing Thread-Specific State
Problem Solution Discussion
12.7. Creating a Thread Pool
Problem Solution Discussion
12.8. Performing Simple Parallel Programming
Problem Solution Discussion
12.9. Dealing with the GIL (and How to Stop Worrying About It)
Problem Solution Discussion
12.10. Defining an Actor Task
Problem Solution Discussion
12.11. Implementing Publish/Subscribe Messaging
Problem Solution Discussion
12.12. Using Generators As an Alternative to Threads
Problem Solution Discussion
12.13. Polling Multiple Thread Queues
Problem Solution Discussion
12.14. Launching a Daemon Process on Unix
Problem Solution Discussion
13. Utility Scripting and System Administration
13.1. Accepting Script Input via Redirection, Pipes, or Input Files
Problem Solution Discussion
13.2. Terminating a Program with an Error Message
Problem Solution Discussion
13.3. Parsing Command-Line Options
Problem Solution Discussion
13.4. Prompting for a Password at Runtime
Problem Solution Discussion
13.5. Getting the Terminal Size
Problem Solution Discussion
13.6. Executing an External Command and Getting Its Output
Problem Solution Discussion
13.7. Copying or Moving Files and Directories
Problem Solution Discussion
13.8. Creating and Unpacking Archives
Problem Solution Discussion
13.9. Finding Files by Name
Problem Solution Discussion
13.10. Reading Configuration Files
Problem Solution Discussion
13.11. Adding Logging to Simple Scripts
Problem Solution Discussion
13.12. Adding Logging to Libraries
Problem Solution Discussion
13.13. Making a Stopwatch Timer
Problem Solution Discussion
13.14. Putting Limits on Memory and CPU Usage
Problem Solution Discussion
13.15. Launching a Web Browser
Problem Solution Discussion
14. Testing, Debugging, and Exceptions
14.1. Testing Output Sent to stdout
Problem Solution Discussion
14.2. Patching Objects in Unit Tests
Problem Solution Discussion
14.3. Testing for Exceptional Conditions in Unit Tests
Problem Solution Discussion
14.4. Logging Test Output to a File
Problem Solution Discussion
14.5. Skipping or Anticipating Test Failures
Problem Solution Discussion
14.6. Handling Multiple Exceptions
Problem Solution Discussion
14.7. Catching All Exceptions
Problem Solution Discussion
14.8. Creating Custom Exceptions
Problem Solution Discussion
14.9. Raising an Exception in Response to Another Exception
Problem Solution Discussion
14.10. Reraising the Last Exception
Problem Solution Discussion
14.11. Issuing Warning Messages
Problem Solution Discussion
14.12. Debugging Basic Program Crashes
Problem Solution Discussion
14.13. Profiling and Timing Your Program
Problem Solution Discussion
14.14. Making Your Programs Run Faster
Problem Solution
Use functions Selectively eliminate attribute access Understand locality of variables Avoid gratuitous abstraction Use the built-in containers Avoid making unnecessary data structures or copies
Discussion
15. C Extensions
15.1. Accessing C Code Using ctypes
Problem Solution Discussion
15.2. Writing a Simple C Extension Module
Problem Solution Discussion
15.3. Writing an Extension Function That Operates on Arrays
Problem Solution Discussion
15.4. Managing Opaque Pointers in C Extension Modules
Problem Solution Discussion
15.5. Defining and Exporting C APIs from Extension Modules
Problem Solution Discussion
15.6. Calling Python from C
Problem Solution Discussion
15.7. Releasing the GIL in C Extensions
Problem Solution Discussion
15.8. Mixing Threads from C and Python
Problem Solution Discussion
15.9. Wrapping C Code with Swig
Problem Solution Discussion
15.10. Wrapping Existing C Code with Cython
Problem Solution Discussion
15.11. Using Cython to Write High-Performance Array Operations
Problem Solution Discussion
15.12. Turning a Function Pointer into a Callable
Problem Solution Discussion
15.13. Passing NULL-Terminated Strings to C Libraries
Problem Solution Discussion
15.14. Passing Unicode Strings to C Libraries
Problem Solution Discussion
15.15. Converting C Strings to Python
Problem Solution Discussion
15.16. Working with C Strings of Dubious Encoding
Problem Solution Discussion
15.17. Passing Filenames to C Extensions
Problem Solution Discussion
15.18. Passing Open Files to C Extensions
Problem Solution Discussion
15.19. Reading File-Like Objects from C
Problem Solution Discussion
15.20. Consuming an Iterable from C
Problem Solution Discussion
15.21. Diagnosing Segmentation Faults
Problem Solution Discussion
A. Further Reading
Online Resources Books for Learning Python Advanced Books
Index About the Authors Colophon Copyright
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion