Differences between revisions 1 and 2
Revision 1 as of 2006-09-12 13:13:58
Size: 15518
Editor: EliasSoong
Comment: 初次建立书籍目录
Revision 2 as of 2006-09-12 14:34:43
Size: 16281
Editor: EliasSoong
Comment: 调整页面格式
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
在邮件列表发起了此翻译工程,希望能够对使用Python进行编程应用有所帮助。有兴趣参与的朋友可以把自己的名字注在相关章节的后面,表认领。 在邮件列表发起了此翻译工程,希望能够对使用Python进行编程应用有所帮助。书的内容很庞大,只有群策群力才行,请有兴趣参与的朋友把自己的名字注在相关章节的后面,明计划完成的日期,以认领章节,防止重复劳动
Line 9: Line 9:
 * 欢迎志愿人员参加翻译,审核!
 * 建议使用模板 zhPyCookbookTemplate ??

== Programming Python, 3rd Edition ==
 * 欢迎志愿人员参加翻译,审核
 * 翻译仅仅是为了学习目的,其它商业版权纠纷与此无关!

 * 建议使用模板 zhPyCookbookTemplate

= Programming Python, 3rd Edition =
Line 25: Line 26:
{{{ Copyright }}}
{{{ Foreword }}}
{{{ Preface }}}
{{{ Part I: The Beginning }}}
== Copyright ==
== Foreword ==
== Preface ==
== Part I: The Beginning ==
Line 30: Line 31:
 * ''["PP3eD-1-1"]'' Section 1.1. "And Now for Something Completely Different"
 * ''["PP3eD-1-2"]'' Section 1.2. Python Philosophy 101
 * ''["PP3eD-1-3"]'' Section 1.3. The Life of Python
 * ''["PP3eD-1-4"]'' Section 1.4. Signs of the Python Times
 * ''["PP3eD-1-5"]'' Section 1.5. The Compulsory Features List
 * ''["PP3eD-1-6"]'' Section 1.6. What's Python Good For?
 * ''["PP3eD-1-7"]'' Section 1.7. What's Python Not Good For?
 * ''["PP3eD-1-8"]'' Section 1.8. Truth in Advertising
 * ''["PP3eD/Ch-1-1"]'' Section 1.1. "And Now for Something Completely Different"
 * ''["PP3eD/Ch-1-2"]'' Section 1.2. Python Philosophy 101
 * ''["PP3eD/Ch-1-3"]'' Section 1.3. The Life of Python
 * ''["PP3eD/Ch-1-4"]'' Section 1.4. Signs of the Python Times
 * ''["PP3eD/Ch-1-5"]'' Section 1.5. The Compulsory Features List
 * ''["PP3eD/Ch-1-6"]'' Section 1.6. What's Python Good For?
 * ''["PP3eD/Ch-1-7"]'' Section 1.7. What's Python Not Good For?
 * ''["PP3eD/Ch-1-8"]'' Section 1.8. Truth in Advertising
Line 39: Line 40:
 * ''["PP3eD-2-1"]'' Section 2.1. "Programming Python: The Short Story"
 * ''["PP3eD-2-2"]'' Section 2.2. The Task
 * ''["PP3eD-2-3"]'' Section 2.3. Step 1: Representing Records
 * ''["PP3eD-2-4"]'' Section 2.4. Step 2: Storing Records Persistently
 * ''["PP3eD-2-5"]'' Section 2.5. Step 3: Stepping Up to OOP
 * ''["PP3eD-2-6"]'' Section 2.6. Step 4: Adding Console Interaction
 * ''["PP3eD-2-7"]'' Section 2.7. Step 5: Adding a GUI
 * ''["PP3eD-2-8"]'' Section 2.8. Step 6: Adding a Web Interface
 * ''["PP3eD-2-9"]'' Section 2.9. The End of the Demo
{{{ Part II: System Programming }}}
 * ''["PP3eD/Ch-2-1"]'' Section 2.1. "Programming Python: The Short Story"
 * ''["PP3eD/Ch-2-2"]'' Section 2.2. The Task
 * ''["PP3eD/Ch-2-3"]'' Section 2.3. Step 1: Representing Records
 * ''["PP3eD/Ch-2-4"]'' Section 2.4. Step 2: Storing Records Persistently
 * ''["PP3eD/Ch-2-5"]'' Section 2.5. Step 3: Stepping Up to OOP
 * ''["PP3eD/Ch-2-6"]'' Section 2.6. Step 4: Adding Console Interaction
 * ''["PP3eD/Ch-2-7"]'' Section 2.7. Step 5: Adding a GUI
 * ''["PP3eD/Ch-2-8"]'' Section 2.8. Step 6: Adding a Web Interface
 * ''["PP3eD/Ch-2-9"]'' Section 2.9. The End of the Demo
== Part II: System Programming ==
Line 50: Line 51:
 * ''["PP3eD-3-1"]'' Section 3.1. "The os.path to Knowledge"
 * ''["PP3eD-3-2"]'' Section 3.2. System Scripting Overview
 * ''["PP3eD-3-3"]'' Section 3.3. Introducing the sys Module
 * ''["PP3eD-3-4"]'' Section 3.4. Introducing the os Module
 * ''["PP3eD-3-5"]'' Section 3.5. Script Execution Context
 * ''["PP3eD-3-6"]'' Section 3.6. Current Working Directory
 * ''["PP3eD-3-7"]'' Section 3.7. Command-Line Arguments
 * ''["PP3eD-3-8"]'' Section 3.8. Shell Environment Variables
 * ''["PP3eD-3-9"]'' Section 3.9. Standard Streams
 * ''["PP3eD/Ch-3-1"]'' Section 3.1. "The os.path to Knowledge"
 * ''["PP3eD/Ch-3-2"]'' Section 3.2. System Scripting Overview
 * ''["PP3eD/Ch-3-3"]'' Section 3.3. Introducing the sys Module
 * ''["PP3eD/Ch-3-4"]'' Section 3.4. Introducing the os Module
 * ''["PP3eD/Ch-3-5"]'' Section 3.5. Script Execution Context
 * ''["PP3eD/Ch-3-6"]'' Section 3.6. Current Working Directory
 * ''["PP3eD/Ch-3-7"]'' Section 3.7. Command-Line Arguments
 * ''["PP3eD/Ch-3-8"]'' Section 3.8. Shell Environment Variables
 * ''["PP3eD/Ch-3-9"]'' Section 3.9. Standard Streams
Line 60: Line 61:
 * ''["PP3eD-4-1"]'' Section 4.1. "Erase Your Hard Drive in Five Easy Steps!"
 * ''["PP3eD-4-2"]'' Section 4.2. File Tools
 * ''["PP3eD-4-3"]'' Section 4.3. Directory Tools
 * ''["PP3eD/Ch-4-1"]'' Section 4.1. "Erase Your Hard Drive in Five Easy Steps!"
 * ''["PP3eD/Ch-4-2"]'' Section 4.2. File Tools
 * ''["PP3eD/Ch-4-3"]'' Section 4.3. Directory Tools
Line 64: Line 65:
 * ''["PP3eD-5-1"]'' Section 5.1. "Telling the Monkeys What to Do"
 * ''["PP3eD-5-2"]'' Section 5.2. Forking Processes
 * ''["PP3eD-5-3"]'' Section 5.3. Threads
 * ''["PP3eD-5-4"]'' Section 5.4. Program Exits
 * ''["PP3eD-5-5"]'' Section 5.5. Interprocess Communication
 * ''["PP3eD-5-6"]'' Section 5.6. Pipes
 * ''["PP3eD-5-7"]'' Section 5.7. Signals
 * ''["PP3eD-5-8"]'' Section 5.8. Other Ways to Start Programs
 * ''["PP3eD-5-9"]'' Section 5.9. A Portable Program-Launch Framework
 * ''["PP3eD-5-10"]'' Section 5.10. Other System Tools
 * ''["PP3eD/Ch-5-1"]'' Section 5.1. "Telling the Monkeys What to Do"
 * ''["PP3eD/Ch-5-2"]'' Section 5.2. Forking Processes
 * ''["PP3eD/Ch-5-3"]'' Section 5.3. Threads
 * ''["PP3eD/Ch-5-4"]'' Section 5.4. Program Exits
 * ''["PP3eD/Ch-5-5"]'' Section 5.5. Interprocess Communication
 * ''["PP3eD/Ch-5-6"]'' Section 5.6. Pipes
 * ''["PP3eD/Ch-5-7"]'' Section 5.7. Signals
 * ''["PP3eD/Ch-5-8"]'' Section 5.8. Other Ways to Start Programs
 * ''["PP3eD/Ch-5-9"]'' Section 5.9. A Portable Program-Launch Framework
 * ''["PP3eD/Ch-5-10"]'' Section 5.10. Other System Tools
Line 75: Line 76:
 * ''["PP3eD-6-1"]'' Section 6.1. "Splits and Joins and Alien Invasions"
 * ''["PP3eD-6-2"]'' Section 6.2. Splitting and Joining Files
 * ''["PP3eD-6-3"]'' Section 6.3. Generating Forward-Link Web Pages
 * ''["PP3eD-6-4"]'' Section 6.4. A Regression Test Script
 * ''["PP3eD-6-5"]'' Section 6.5. Packing and Unpacking Files
 * ''["PP3eD-6-6"]'' Section 6.6. Automated Program Launchers
 * ''["PP3eD/Ch-6-1"]'' Section 6.1. "Splits and Joins and Alien Invasions"
 * ''["PP3eD/Ch-6-2"]'' Section 6.2. Splitting and Joining Files
 * ''["PP3eD/Ch-6-3"]'' Section 6.3. Generating Forward-Link Web Pages
 * ''["PP3eD/Ch-6-4"]'' Section 6.4. A Regression Test Script
 * ''["PP3eD/Ch-6-5"]'' Section 6.5. Packing and Unpacking Files
 * ''["PP3eD/Ch-6-6"]'' Section 6.6. Automated Program Launchers
Line 82: Line 83:
 * ''["PP3eD-7-1"]'' Section 7.1. "The Greps of Wrath"
 * ''["PP3eD-7-2"]'' Section 7.2. Fixing DOS Line Ends
 * ''["PP3eD-7-3"]'' Section 7.3. Fixing DOS Filenames
 * ''["PP3eD-7-4"]'' Section 7.4. Searching Directory Trees
 * ''["PP3eD-7-5"]'' Section 7.5. Visitor: Walking Trees Generically
 * ''["PP3eD-7-6"]'' Section 7.6. Copying Directory Trees
 * ''["PP3eD-7-7"]'' Section 7.7. Deleting Directory Trees
 * ''["PP3eD-7-8"]'' Section 7.8. Comparing Directory Trees
{{{ Part III: GUI Programming }}}
 * ''["PP3eD/Ch-7-1"]'' Section 7.1. "The Greps of Wrath"
 * ''["PP3eD/Ch-7-2"]'' Section 7.2. Fixing DOS Line Ends
 * ''["PP3eD/Ch-7-3"]'' Section 7.3. Fixing DOS Filenames
 * ''["PP3eD/Ch-7-4"]'' Section 7.4. Searching Directory Trees
 * ''["PP3eD/Ch-7-5"]'' Section 7.5. Visitor: Walking Trees Generically
 * ''["PP3eD/Ch-7-6"]'' Section 7.6. Copying Directory Trees
 * ''["PP3eD/Ch-7-7"]'' Section 7.7. Deleting Directory Trees
 * ''["PP3eD/Ch-7-8"]'' Section 7.8. Comparing Directory Trees
== Part III: GUI Programming ==
Line 92: Line 93:
 * ''["PP3eD-8-1"]'' Section 8.1. "Here's Looking at You, Kid"
 * ''["PP3eD-8-2"]'' Section 8.2. Python GUI Development Options
 * ''["PP3eD-8-3"]'' Section 8.3. Tkinter Overview
 * ''["PP3eD-8-4"]'' Section 8.4. Climbing the GUI Learning Curve
 * ''["PP3eD-8-5"]'' Section 8.5. Tkinter Coding Basics
 * ''["PP3eD-8-6"]'' Section 8.6. Tkinter Coding Alternatives
 * ''["PP3eD-8-7"]'' Section 8.7. Adding Buttons and Callbacks
 * ''["PP3eD-8-8"]'' Section 8.8. Adding User-Defined Callback Handlers
 * ''["PP3eD-8-9"]'' Section 8.9. Adding Multiple Widgets
 * ''["PP3eD-8-10"]'' Section 8.10. Customizing Widgets with Classes
 * ''["PP3eD-8-11"]'' Section 8.11. Reusable GUI Components with Classes
 * ''["PP3eD-8-12"]'' Section 8.12. The End of the Tutorial
 * ''["PP3eD-8-13"]'' Section 8.13. Python/Tkinter for Tcl/Tk Converts
 * ''["PP3eD/Ch-8-1"]'' Section 8.1. "Here's Looking at You, Kid"
 * ''["PP3eD/Ch-8-2"]'' Section 8.2. Python GUI Development Options
 * ''["PP3eD/Ch-8-3"]'' Section 8.3. Tkinter Overview
 * ''["PP3eD/Ch-8-4"]'' Section 8.4. Climbing the GUI Learning Curve
 * ''["PP3eD/Ch-8-5"]'' Section 8.5. Tkinter Coding Basics
 * ''["PP3eD/Ch-8-6"]'' Section 8.6. Tkinter Coding Alternatives
 * ''["PP3eD/Ch-8-7"]'' Section 8.7. Adding Buttons and Callbacks
 * ''["PP3eD/Ch-8-8"]'' Section 8.8. Adding User-Defined Callback Handlers
 * ''["PP3eD/Ch-8-9"]'' Section 8.9. Adding Multiple Widgets
 * ''["PP3eD/Ch-8-10"]'' Section 8.10. Customizing Widgets with Classes
 * ''["PP3eD/Ch-8-11"]'' Section 8.11. Reusable GUI Components with Classes
 * ''["PP3eD/Ch-8-12"]'' Section 8.12. The End of the Tutorial
 * ''["PP3eD/Ch-8-13"]'' Section 8.13. Python/Tkinter for Tcl/Tk Converts
Line 106: Line 107:
 * ''["PP3eD-9-1"]'' Section 9.1. "Widgets and Gadgets and GUIs, Oh My!"
 * ''["PP3eD-9-2"]'' Section 9.2. Configuring Widget Appearance
 * ''["PP3eD-9-3"]'' Section 9.3. Top-Level Windows
 * ''["PP3eD-9-4"]'' Section 9.4. Dialogs
 * ''["PP3eD-9-5"]'' Section 9.5. Binding Events
 * ''["PP3eD-9-6"]'' Section 9.6. Message and Entry
 * ''["PP3eD-9-7"]'' Section 9.7. Checkbutton, Radiobutton, and Scale
 * ''["PP3eD-9-8"]'' Section 9.8. Running GUI Code Three Ways
 * ''["PP3eD-9-9"]'' Section 9.9. Images
 * ''["PP3eD-9-10"]'' Section 9.10. Viewing and Processing Images with PIL
 * ''["PP3eD/Ch-9-1"]'' Section 9.1. "Widgets and Gadgets and GUIs, Oh My!"
 * ''["PP3eD/Ch-9-2"]'' Section 9.2. Configuring Widget Appearance
 * ''["PP3eD/Ch-9-3"]'' Section 9.3. Top-Level Windows
 * ''["PP3eD/Ch-9-4"]'' Section 9.4. Dialogs
 * ''["PP3eD/Ch-9-5"]'' Section 9.5. Binding Events
 * ''["PP3eD/Ch-9-6"]'' Section 9.6. Message and Entry
 * ''["PP3eD/Ch-9-7"]'' Section 9.7. Checkbutton, Radiobutton, and Scale
 * ''["PP3eD/Ch-9-8"]'' Section 9.8. Running GUI Code Three Ways
 * ''["PP3eD/Ch-9-9"]'' Section 9.9. Images
 * ''["PP3eD/Ch-9-10"]'' Section 9.10. Viewing and Processing Images with PIL
Line 117: Line 118:
 * ''["PP3eD-10-1"]'' Section 10.1. "On Today's Menu: Spam, Spam, and Spam"
 * ''["PP3eD-10-2"]'' Section 10.2. Menus
 * ''["PP3eD-10-3"]'' Section 10.3. Listboxes and Scrollbars
 * ''["PP3eD-10-4"]'' Section 10.4. Text
 * ''["PP3eD-10-5"]'' Section 10.5. Canvas
 * ''["PP3eD-10-6"]'' Section 10.6. Grids
 * ''["PP3eD-10-7"]'' Section 10.7. Time Tools, Threads, and Animation
 * ''["PP3eD-10-8"]'' Section 10.8. The End of the Tour
 * ''["PP3eD-10-9"]'' Section 10.9. The PyDemos and PyGadgets Launchers
 * ''["PP3eD/Ch-10-1"]'' Section 10.1. "On Today's Menu: Spam, Spam, and Spam"
 * ''["PP3eD/Ch-10-2"]'' Section 10.2. Menus
 * ''["PP3eD/Ch-10-3"]'' Section 10.3. Listboxes and Scrollbars
 * ''["PP3eD/Ch-10-4"]'' Section 10.4. Text
 * ''["PP3eD/Ch-10-5"]'' Section 10.5. Canvas
 * ''["PP3eD/Ch-10-6"]'' Section 10.6. Grids
 * ''["PP3eD/Ch-10-7"]'' Section 10.7. Time Tools, Threads, and Animation
 * ''["PP3eD/Ch-10-8"]'' Section 10.8. The End of the Tour
 * ''["PP3eD/Ch-10-9"]'' Section 10.9. The PyDemos and PyGadgets Launchers
Line 127: Line 128:
 * ''["PP3eD-11-1"]'' Section 11.1. "Building a Better Mouse Trap"
 * ''["PP3eD-11-2"]'' Section 11.2. GuiMixin: Common Tool Mixin Classes
 * ''["PP3eD-11-3"]'' Section 11.3. GuiMaker: Automating Menus and Toolbars
 * ''["PP3eD-11-4"]'' Section 11.4. ShellGui: GUIs for Command-Line Tools
 * ''["PP3eD-11-5"]'' Section 11.5. GuiStreams: Redirecting Streams to Widgets
 * ''["PP3eD-11-6"]'' Section 11.6. Reloading Callback Handlers Dynamically
 * ''["PP3eD-11-7"]'' Section 11.7. Wrapping Up Top-Level Window Interfaces
 * ''["PP3eD-11-8"]'' Section 11.8. GUIs, Threads, and Queues
 * ''["PP3eD-11-9"]'' Section 11.9. More Ways to Add GUIs to Non-GUI Code
 * ''["PP3eD/Ch-11-1"]'' Section 11.1. "Building a Better Mouse Trap"
 * ''["PP3eD/Ch-11-2"]'' Section 11.2. GuiMixin: Common Tool Mixin Classes
 * ''["PP3eD/Ch-11-3"]'' Section 11.3. GuiMaker: Automating Menus and Toolbars
 * ''["PP3eD/Ch-11-4"]'' Section 11.4. ShellGui: GUIs for Command-Line Tools
 * ''["PP3eD/Ch-11-5"]'' Section 11.5. GuiStreams: Redirecting Streams to Widgets
 * ''["PP3eD/Ch-11-6"]'' Section 11.6. Reloading Callback Handlers Dynamically
 * ''["PP3eD/Ch-11-7"]'' Section 11.7. Wrapping Up Top-Level Window Interfaces
 * ''["PP3eD/Ch-11-8"]'' Section 11.8. GUIs, Threads, and Queues
 * ''["PP3eD/Ch-11-9"]'' Section 11.9. More Ways to Add GUIs to Non-GUI Code
Line 137: Line 138:
 * ''["PP3eD-12-1"]'' Section 12.1. "Python, Open Source, and Camaros"
 * ''["PP3eD-12-2"]'' Section 12.2. PyEdit: A Text Editor Program/Object
 * ''["PP3eD-12-3"]'' Section 12.3. PyPhoto: An Image Viewer and Resizer
 * ''["PP3eD-12-4"]'' Section 12.4. PyView: An Image and Notes Slideshow
 * ''["PP3eD-12-5"]'' Section 12.5. PyDraw: Painting and Moving Graphics
 * ''["PP3eD-12-6"]'' Section 12.6. PyClock: An Analog/Digital Clock Widget
 * ''["PP3eD-12-7"]'' Section 12.7. PyToe: A Tic-Tac-Toe Game Widget
 * ''["PP3eD-12-8"]'' Section 12.8. Where to Go from Here
{{{ Part IV: Internet Programming }}}
 * ''["PP3eD/Ch-12-1"]'' Section 12.1. "Python, Open Source, and Camaros"
 * ''["PP3eD/Ch-12-2"]'' Section 12.2. PyEdit: A Text Editor Program/Object
 * ''["PP3eD/Ch-12-3"]'' Section 12.3. PyPhoto: An Image Viewer and Resizer
 * ''["PP3eD/Ch-12-4"]'' Section 12.4. PyView: An Image and Notes Slideshow
 * ''["PP3eD/Ch-12-5"]'' Section 12.5. PyDraw: Painting and Moving Graphics
 * ''["PP3eD/Ch-12-6"]'' Section 12.6. PyClock: An Analog/Digital Clock Widget
 * ''["PP3eD/Ch-12-7"]'' Section 12.7. PyToe: A Tic-Tac-Toe Game Widget
 * ''["PP3eD/Ch-12-8"]'' Section 12.8. Where to Go from Here
== Part IV: Internet Programming ==
Line 147: Line 148:
 * ''["PP3eD-13-1"]'' Section 13.1. "Tune In, Log On, and Drop Out"
 * ''["PP3eD-13-2"]'' Section 13.2. Plumbing the Internet
 * ''["PP3eD-13-3"]'' Section 13.3. Socket Programming
 * ''["PP3eD-13-4"]'' Section 13.4. Handling Multiple Clients
 * ''["PP3eD-13-5"]'' Section 13.5. A Simple Python File Server
 * ''["PP3eD/Ch-13-1"]'' Section 13.1. "Tune In, Log On, and Drop Out"
 * ''["PP3eD/Ch-13-2"]'' Section 13.2. Plumbing the Internet
 * ''["PP3eD/Ch-13-3"]'' Section 13.3. Socket Programming
 * ''["PP3eD/Ch-13-4"]'' Section 13.4. Handling Multiple Clients
 * ''["PP3eD/Ch-13-5"]'' Section 13.5. A Simple Python File Server
Line 153: Line 154:
 * ''["PP3eD-14-1"]'' Section 14.1. "Socket to Me!"
 * ''["PP3eD-14-2"]'' Section 14.2. FTP: Transferring Files over the Net
 * ''["PP3eD-14-3"]'' Section 14.3. Processing Internet Email
 * ''["PP3eD-14-4"]'' Section 14.4. POP: Fetching Email
 * ''["PP3eD-14-5"]'' Section 14.5. SMTP: Sending Email
 * ''["PP3eD-14-6"]'' Section 14.6. email: Parsing and Composing Mails
 * ''["PP3eD-14-7"]'' Section 14.7. pymail: A Console-Based Email Client
 * ''["PP3eD-14-8"]'' Section 14.8. The mailtools Utility Package
 * ''["PP3eD-14-9"]'' Section 14.9. NNTP: Accessing Newsgroups
 * ''["PP3eD-14-10"]'' Section 14.10. HTTP: Accessing Web Sites
 * ''["PP3eD-14-11"]'' Section 14.11. Module urllib Revisited
 * ''["PP3eD-14-12"]'' Section 14.12. Other Client-Side Scripting Options
 * ''["PP3eD/Ch-14-1"]'' Section 14.1. "Socket to Me!"
 * ''["PP3eD/Ch-14-2"]'' Section 14.2. FTP: Transferring Files over the Net
 * ''["PP3eD/Ch-14-3"]'' Section 14.3. Processing Internet Email
 * ''["PP3eD/Ch-14-4"]'' Section 14.4. POP: Fetching Email
 * ''["PP3eD/Ch-14-5"]'' Section 14.5. SMTP: Sending Email
 * ''["PP3eD/Ch-14-6"]'' Section 14.6. email: Parsing and Composing Mails
 * ''["PP3eD/Ch-14-7"]'' Section 14.7. pymail: A Console-Based Email Client
 * ''["PP3eD/Ch-14-8"]'' Section 14.8. The mailtools Utility Package
 * ''["PP3eD/Ch-14-9"]'' Section 14.9. NNTP: Accessing Newsgroups
 * ''["PP3eD/Ch-14-10"]'' Section 14.10. HTTP: Accessing Web Sites
 * ''["PP3eD/Ch-14-11"]'' Section 14.11. Module urllib Revisited
 * ''["PP3eD/Ch-14-12"]'' Section 14.12. Other Client-Side Scripting Options
Line 166: Line 167:
 * ''["PP3eD-15-1"]'' Section 15.1. "Use the Source, Luke"
 * ''["PP3eD-15-2"]'' Section 15.2. A PyMailGUI Demo
 * ''["PP3eD-15-3"]'' Section 15.3. PyMailGUI Implementation
 * ''["PP3eD/Ch-15-1"]'' Section 15.1. "Use the Source, Luke"
 * ''["PP3eD/Ch-15-2"]'' Section 15.2. A PyMailGUI Demo
 * ''["PP3eD/Ch-15-3"]'' Section 15.3. PyMailGUI Implementation
Line 170: Line 171:
 * ''["PP3eD-16-1"]'' Section 16.1. "Oh What a Tangled Web We Weave"
 * ''["PP3eD-16-2"]'' Section 16.2. What's a Server-Side CGI Script?
 * ''["PP3eD-16-3"]'' Section 16.3. Running Server-Side Examples
 * ''["PP3eD-16-4"]'' Section 16.4. Climbing the CGI Learning Curve
 * ''["PP3eD-16-5"]'' Section 16.5. Saving State Information in CGI Scripts
 * ''["PP3eD-16-6"]'' Section 16.6. The Hello World Selector
 * ''["PP3eD-16-7"]'' Section 16.7. Refactoring Code for Maintainability
 * ''["PP3eD-16-8"]'' Section 16.8. More on HTML and URL Escapes
 * ''["PP3eD-16-9"]'' Section 16.9. Transferring Files to Clients and Servers
 * ''["PP3eD/Ch-16-1"]'' Section 16.1. "Oh What a Tangled Web We Weave"
 * ''["PP3eD/Ch-16-2"]'' Section 16.2. What's a Server-Side CGI Script?
 * ''["PP3eD/Ch-16-3"]'' Section 16.3. Running Server-Side Examples
 * ''["PP3eD/Ch-16-4"]'' Section 16.4. Climbing the CGI Learning Curve
 * ''["PP3eD/Ch-16-5"]'' Section 16.5. Saving State Information in CGI Scripts
 * ''["PP3eD/Ch-16-6"]'' Section 16.6. The Hello World Selector
 * ''["PP3eD/Ch-16-7"]'' Section 16.7. Refactoring Code for Maintainability
 * ''["PP3eD/Ch-16-8"]'' Section 16.8. More on HTML and URL Escapes
 * ''["PP3eD/Ch-16-9"]'' Section 16.9. Transferring Files to Clients and Servers
Line 180: Line 181:
 * ''["PP3eD-17-1"]'' Section 17.1. "Things to Do When Visiting Chicago"
 * ''["PP3eD-17-2"]'' Section 17.2. The PyMailCGI Web Site
 * ''["PP3eD-17-3"]'' Section 17.3. The Root Page
 * ''["PP3eD-17-4"]'' Section 17.4. Sending Mail by SMTP
 * ''["PP3eD-17-5"]'' Section 17.5. Reading POP Email
 * ''["PP3eD-17-6"]'' Section 17.6. Processing Fetched Mail
 * ''["PP3eD-17-7"]'' Section 17.7. Utility Modules
 * ''["PP3eD-17-8"]'' Section 17.8. CGI Script Trade-Offs
 * ''["PP3eD/Ch-17-1"]'' Section 17.1. "Things to Do When Visiting Chicago"
 * ''["PP3eD/Ch-17-2"]'' Section 17.2. The PyMailCGI Web Site
 * ''["PP3eD/Ch-17-3"]'' Section 17.3. The Root Page
 * ''["PP3eD/Ch-17-4"]'' Section 17.4. Sending Mail by SMTP
 * ''["PP3eD/Ch-17-5"]'' Section 17.5. Reading POP Email
 * ''["PP3eD/Ch-17-6"]'' Section 17.6. Processing Fetched Mail
 * ''["PP3eD/Ch-17-7"]'' Section 17.7. Utility Modules
 * ''["PP3eD/Ch-17-8"]'' Section 17.8. CGI Script Trade-Offs
Line 189: Line 190:
 * ''["PP3eD-18-1"]'' Section 18.1. "Surfing on the Shoulders of Giants"
 * ''["PP3eD-18-2"]'' Section 18.2. Zope: A Web Application Framework
 * ''["PP3eD-18-3"]'' Section 18.3. HTMLgen: Web Pages from Objects
 * ''["PP3eD-18-4"]'' Section 18.4. Jython: Python for Java
 * ''["PP3eD-18-5"]'' Section 18.5. Grail: A Python-Based Web Browser
 * ''["PP3eD-18-6"]'' Section 18.6. XML Processing Tools
 * ''["PP3eD-18-7"]'' Section 18.7. Windows Web Scripting Extensions
 * ''["PP3eD-18-8"]'' Section 18.8. Python Server Pages
 * ''["PP3eD-18-9"]'' Section 18.9. Rolling Your Own Servers in Python
 * ''["PP3eD-18-10"]'' Section 18.10. And Other Cool Stuff
{{{ Part V: Tools and Techniques }}}
 * ''["PP3eD/Ch-18-1"]'' Section 18.1. "Surfing on the Shoulders of Giants"
 * ''["PP3eD/Ch-18-2"]'' Section 18.2. Zope: A Web Application Framework
 * ''["PP3eD/Ch-18-3"]'' Section 18.3. HTMLgen: Web Pages from Objects
 * ''["PP3eD/Ch-18-4"]'' Section 18.4. Jython: Python for Java
 * ''["PP3eD/Ch-18-5"]'' Section 18.5. Grail: A Python-Based Web Browser
 * ''["PP3eD/Ch-18-6"]'' Section 18.6. XML Processing Tools
 * ''["PP3eD/Ch-18-7"]'' Section 18.7. Windows Web Scripting Extensions
 * ''["PP3eD/Ch-18-8"]'' Section 18.8. Python Server Pages
 * ''["PP3eD/Ch-18-9"]'' Section 18.9. Rolling Your Own Servers in Python
 * ''["PP3eD/Ch-18-10"]'' Section 18.10. And Other Cool Stuff
== Part V: Tools and Techniques ==
Line 201: Line 202:
 * ''["PP3eD-19-1"]'' Section 19.1. "Give Me an Order of Persistence, but Hold the Pickles"
 * ''["PP3eD-19-2"]'' Section 19.2. Persistence Options in Python
 * ''["PP3eD-19-3"]'' Section 19.3. DBM Files
 * ''["PP3eD-19-4"]'' Section 19.4. Pickled Objects
 * ''["PP3eD-19-5"]'' Section 19.5. Shelve Files
 * ''["PP3eD-19-6"]'' Section 19.6. The ZODB Object-Oriented Database
 * ''["PP3eD-19-7"]'' Section 19.7. SQL Database Interfaces
 * ''["PP3eD-19-8"]'' Section 19.8. PyForm: A Persistent Object Viewer
 * ''["PP3eD/Ch-19-1"]'' Section 19.1. "Give Me an Order of Persistence, but Hold the Pickles"
 * ''["PP3eD/Ch-19-2"]'' Section 19.2. Persistence Options in Python
 * ''["PP3eD/Ch-19-3"]'' Section 19.3. DBM Files
 * ''["PP3eD/Ch-19-4"]'' Section 19.4. Pickled Objects
 * ''["PP3eD/Ch-19-5"]'' Section 19.5. Shelve Files
 * ''["PP3eD/Ch-19-6"]'' Section 19.6. The ZODB Object-Oriented Database
 * ''["PP3eD/Ch-19-7"]'' Section 19.7. SQL Database Interfaces
 * ''["PP3eD/Ch-19-8"]'' Section 19.8. PyForm: A Persistent Object Viewer
Line 210: Line 211:
 * ''["PP3eD-20-1"]'' Section 20.1. "Roses Are Red, Violets Are Blue; Lists Are Mutable, and So Is Set Foo"
 * ''["PP3eD-20-2"]'' Section 20.2. Implementing Stacks
 * ''["PP3eD-20-3"]'' Section 20.3. Implementing Sets
 * ''["PP3eD-20-4"]'' Section 20.4. Subclassing Built-In Types
 * ''["PP3eD-20-5"]'' Section 20.5. Binary Search Trees
 * ''["PP3eD-20-6"]'' Section 20.6. Graph Searching
 * ''["PP3eD-20-7"]'' Section 20.7. Reversing Sequences
 * ''["PP3eD-20-8"]'' Section 20.8. Permuting Sequences
 * ''["PP3eD-20-9"]'' Section 20.9. Sorting Sequences
 * ''["PP3eD-20-10"]'' Section 20.10. Data Structures Versus Python Built-Ins
 * ''["PP3eD-20-11"]'' Section 20.11. PyTree: A Generic Tree Object Viewer
 * ''["PP3eD/Ch-20-1"]'' Section 20.1. "Roses Are Red, Violets Are Blue; Lists Are Mutable, and So Is Set Foo"
 * ''["PP3eD/Ch-20-2"]'' Section 20.2. Implementing Stacks
 * ''["PP3eD/Ch-20-3"]'' Section 20.3. Implementing Sets
 * ''["PP3eD/Ch-20-4"]'' Section 20.4. Subclassing Built-In Types
 * ''["PP3eD/Ch-20-5"]'' Section 20.5. Binary Search Trees
 * ''["PP3eD/Ch-20-6"]'' Section 20.6. Graph Searching
 * ''["PP3eD/Ch-20-7"]'' Section 20.7. Reversing Sequences
 * ''["PP3eD/Ch-20-8"]'' Section 20.8. Permuting Sequences
 * ''["PP3eD/Ch-20-9"]'' Section 20.9. Sorting Sequences
 * ''["PP3eD/Ch-20-10"]'' Section 20.10. Data Structures Versus Python Built-Ins
 * ''["PP3eD/Ch-20-11"]'' Section 20.11. PyTree: A Generic Tree Object Viewer
Line 222: Line 223:
 * ''["PP3eD-21-1"]'' Section 21.1. "See Jack Hack. Hack, Jack, Hack"
 * ''["PP3eD-21-2"]'' Section 21.2. Strategies for Parsing Text in Python
 * ''["PP3eD-21-3"]'' Section 21.3. String Method Utilities
 * ''["PP3eD-21-4"]'' Section 21.4. Regular Expression Pattern Matching
 * ''["PP3eD-21-5"]'' Section 21.5. Advanced Language Tools
 * ''["PP3eD-21-6"]'' Section 21.6. Handcoded Parsers
 * ''["PP3eD-21-7"]'' Section 21.7. PyCalc: A Calculator Program/Object
{{{ Part VI: Integration }}}
 * ''["PP3eD/Ch-21-1"]'' Section 21.1. "See Jack Hack. Hack, Jack, Hack"
 * ''["PP3eD/Ch-21-2"]'' Section 21.2. Strategies for Parsing Text in Python
 * ''["PP3eD/Ch-21-3"]'' Section 21.3. String Method Utilities
 * ''["PP3eD/Ch-21-4"]'' Section 21.4. Regular Expression Pattern Matching
 * ''["PP3eD/Ch-21-5"]'' Section 21.5. Advanced Language Tools
 * ''["PP3eD/Ch-21-6"]'' Section 21.6. Handcoded Parsers
 * ''["PP3eD/Ch-21-7"]'' Section 21.7. PyCalc: A Calculator Program/Object
== Part VI: Integration ==
Line 231: Line 232:
 * ''["PP3eD-22-1"]'' Section 22.1. "I Am Lost at C"
 * ''["PP3eD-22-2"]'' Section 22.2. Integration Modes
 * ''["PP3eD-22-3"]'' Section 22.3. C Extensions Overview
 * ''["PP3eD-22-4"]'' Section 22.4. A Simple C Extension Module
 * ''["PP3eD-22-5"]'' Section 22.5. Extension Module Details
 * ''["PP3eD-22-6"]'' Section 22.6. The SWIG Integration Code Generator
 * ''["PP3eD-22-7"]'' Section 22.7. Wrapping C Environment Calls
 * ''["PP3eD-22-8"]'' Section 22.8. A C Extension Module String Stack
 * ''["PP3eD-22-9"]'' Section 22.9. A C Extension Type String Stack
 * ''["PP3eD-22-10"]'' Section 22.10. Wrapping C++ Classes with SWIG
 * ''["PP3eD-22-11"]'' Section 22.11. Other Extending Tools
 * ''["PP3eD/Ch-22-1"]'' Section 22.1. "I Am Lost at C"
 * ''["PP3eD/Ch-22-2"]'' Section 22.2. Integration Modes
 * ''["PP3eD/Ch-22-3"]'' Section 22.3. C Extensions Overview
 * ''["PP3eD/Ch-22-4"]'' Section 22.4. A Simple C Extension Module
 * ''["PP3eD/Ch-22-5"]'' Section 22.5. Extension Module Details
 * ''["PP3eD/Ch-22-6"]'' Section 22.6. The SWIG Integration Code Generator
 * ''["PP3eD/Ch-22-7"]'' Section 22.7. Wrapping C Environment Calls
 * ''["PP3eD/Ch-22-8"]'' Section 22.8. A C Extension Module String Stack
 * ''["PP3eD/Ch-22-9"]'' Section 22.9. A C Extension Type String Stack
 * ''["PP3eD/Ch-22-10"]'' Section 22.10. Wrapping C++ Classes with SWIG
 * ''["PP3eD/Ch-22-11"]'' Section 22.11. Other Extending Tools
Line 243: Line 244:
 * ''["PP3eD-23-1"]'' Section 23.1. "Add Python. Mix Well. Repeat."
 * ''["PP3eD-23-2"]'' Section 23.2. C Embedding API Overview
 * ''["PP3eD-23-3"]'' Section 23.3. Basic Embedding Techniques
 * ''["PP3eD-23-4"]'' Section 23.4. Registering Callback Handler Objects
 * ''["PP3eD-23-5"]'' Section 23.5. Using Python Classes in C
 * ''["PP3eD-23-6"]'' Section 23.6. A High-Level Embedding API: ppembed
 * ''["PP3eD-23-7"]'' Section 23.7. Other Integration Topics
{{{ Part VIII: The End }}}
 * ''["PP3eD/Ch-23-1"]'' Section 23.1. "Add Python. Mix Well. Repeat."
 * ''["PP3eD/Ch-23-2"]'' Section 23.2. C Embedding API Overview
 * ''["PP3eD/Ch-23-3"]'' Section 23.3. Basic Embedding Techniques
 * ''["PP3eD/Ch-23-4"]'' Section 23.4. Registering Callback Handler Objects
 * ''["PP3eD/Ch-23-5"]'' Section 23.5. Using Python Classes in C
 * ''["PP3eD/Ch-23-6"]'' Section 23.6. A High-Level Embedding API: ppembed
 * ''["PP3eD/Ch-23-7"]'' Section 23.7. Other Integration Topics
== Part VIII: The End ==
Line 252: Line 253:
 * ''["PP3eD-24-1"]'' Section 24.1. "That's the End of the Book, Now Here's the Meaning of Life"
 * ''["PP3eD-24-2"]'' Section 24.2. "Something's Wrong with the Way We Program Computers"
 * ''["PP3eD-24-3"]'' Section 24.3. The "Gilligan Factor"
 * ''["PP3eD-24-4"]'' Section 24.4. Doing the Right Thing
 * ''["PP3eD-24-5"]'' Section 24.5. Enter Python
 * ''["PP3eD-24-6"]'' Section 24.6. But What About That Bottleneck?
 * ''["PP3eD-24-7"]'' Section 24.7. On Sinking the Titanic
 * ''["PP3eD-24-8"]'' Section 24.8. So What's "Python: The Sequel"?
 * ''["PP3eD-24-9"]'' Section 24.9. In the Final Analysis . . .
 * ''["PP3eD-24-10"]'' Section 24.10. Postscript to the Second Edition (2000)
 * ''["PP3eD-24-11"]'' Section 24.11. Postscript to the Third Edition (2006)
{{{ About the Author }}}
{{{
Colophon }}}
{{{
Index }}}

=
= 多嘴多舌 ==
 * ''["PP3eD/Ch-24-1"]'' Section 24.1. "That's the End of the Book, Now Here's the Meaning of Life"
 * ''["PP3eD/Ch-24-2"]'' Section 24.2. "Something's Wrong with the Way We Program Computers"
 * ''["PP3eD/Ch-24-3"]'' Section 24.3. The "Gilligan Factor"
 * ''["PP3eD/Ch-24-4"]'' Section 24.4. Doing the Right Thing
 * ''["PP3eD/Ch-24-5"]'' Section 24.5. Enter Python
 * ''["PP3eD/Ch-24-6"]'' Section 24.6. But What About That Bottleneck?
 * ''["PP3eD/Ch-24-7"]'' Section 24.7. On Sinking the Titanic
 * ''["PP3eD/Ch-24-8"]'' Section 24.8. So What's "Python: The Sequel"?
 * ''["PP3eD/Ch-24-9"]'' Section 24.9. In the Final Analysis . . .
 * ''["PP3eD/Ch-24-10"]'' Section 24.10. Postscript to the Second Edition (2000)
 * ''["PP3eD/Ch-24-11"]'' Section 24.11. Postscript to the Third Edition (2006)
== About the Author ==
==
Colophon ==
==
Index ==

= 多嘴多舌 =

Include(ObpRelating) 在邮件列表发起了此翻译工程,希望能够对使用Python进行编程应用有所帮助。书的内容很庞大,只有群策群力才行,请有兴趣参与的朋友把自己的名字注在相关章节的后面,并表明计划完成的日期,以认领章节,防止重复劳动。

TableOfContents

  • 欢迎志愿人员参加翻译,审核!
  • 翻译仅仅是为了学习目的,其它商业版权纠纷与此无关!
  • 建议使用模板 zhPyCookbookTemplate

Programming Python, 3rd Edition

2006/09/12 20:35 开始! By Mark Lutz

  • Publisher : O'Reilly
  • Pub Date : August 2006
  • Print ISBN-10: 0-596-00925-9
  • Print ISBN-13: 978-0-59-600925-0
  • Pages : 1596

Foreword

Preface

Part I: The Beginning

Chapter 1. Introducing Python

  • ["PP3eD/Ch-1-1"] Section 1.1. "And Now for Something Completely Different"

  • ["PP3eD/Ch-1-2"] Section 1.2. Python Philosophy 101

  • ["PP3eD/Ch-1-3"] Section 1.3. The Life of Python

  • ["PP3eD/Ch-1-4"] Section 1.4. Signs of the Python Times

  • ["PP3eD/Ch-1-5"] Section 1.5. The Compulsory Features List

  • ["PP3eD/Ch-1-6"] Section 1.6. What's Python Good For?

  • ["PP3eD/Ch-1-7"] Section 1.7. What's Python Not Good For?

  • ["PP3eD/Ch-1-8"] Section 1.8. Truth in Advertising

Chapter 2. A Sneak Preview

  • ["PP3eD/Ch-2-1"] Section 2.1. "Programming Python: The Short Story"

  • ["PP3eD/Ch-2-2"] Section 2.2. The Task

  • ["PP3eD/Ch-2-3"] Section 2.3. Step 1: Representing Records

  • ["PP3eD/Ch-2-4"] Section 2.4. Step 2: Storing Records Persistently

  • ["PP3eD/Ch-2-5"] Section 2.5. Step 3: Stepping Up to OOP

  • ["PP3eD/Ch-2-6"] Section 2.6. Step 4: Adding Console Interaction

  • ["PP3eD/Ch-2-7"] Section 2.7. Step 5: Adding a GUI

  • ["PP3eD/Ch-2-8"] Section 2.8. Step 6: Adding a Web Interface

  • ["PP3eD/Ch-2-9"] Section 2.9. The End of the Demo

Part II: System Programming

Chapter 3. System Tools

  • ["PP3eD/Ch-3-1"] Section 3.1. "The os.path to Knowledge"

  • ["PP3eD/Ch-3-2"] Section 3.2. System Scripting Overview

  • ["PP3eD/Ch-3-3"] Section 3.3. Introducing the sys Module

  • ["PP3eD/Ch-3-4"] Section 3.4. Introducing the os Module

  • ["PP3eD/Ch-3-5"] Section 3.5. Script Execution Context

  • ["PP3eD/Ch-3-6"] Section 3.6. Current Working Directory

  • ["PP3eD/Ch-3-7"] Section 3.7. Command-Line Arguments

  • ["PP3eD/Ch-3-8"] Section 3.8. Shell Environment Variables

  • ["PP3eD/Ch-3-9"] Section 3.9. Standard Streams

Chapter 4. File and Directory Tools

  • ["PP3eD/Ch-4-1"] Section 4.1. "Erase Your Hard Drive in Five Easy Steps!"

  • ["PP3eD/Ch-4-2"] Section 4.2. File Tools

  • ["PP3eD/Ch-4-3"] Section 4.3. Directory Tools

Chapter 5. Parallel System Tools

  • ["PP3eD/Ch-5-1"] Section 5.1. "Telling the Monkeys What to Do"

  • ["PP3eD/Ch-5-2"] Section 5.2. Forking Processes

  • ["PP3eD/Ch-5-3"] Section 5.3. Threads

  • ["PP3eD/Ch-5-4"] Section 5.4. Program Exits

  • ["PP3eD/Ch-5-5"] Section 5.5. Interprocess Communication

  • ["PP3eD/Ch-5-6"] Section 5.6. Pipes

  • ["PP3eD/Ch-5-7"] Section 5.7. Signals

  • ["PP3eD/Ch-5-8"] Section 5.8. Other Ways to Start Programs

  • ["PP3eD/Ch-5-9"] Section 5.9. A Portable Program-Launch Framework

  • ["PP3eD/Ch-5-10"] Section 5.10. Other System Tools

Chapter 6. System Examples: Utilities

  • ["PP3eD/Ch-6-1"] Section 6.1. "Splits and Joins and Alien Invasions"

  • ["PP3eD/Ch-6-2"] Section 6.2. Splitting and Joining Files

  • ["PP3eD/Ch-6-3"] Section 6.3. Generating Forward-Link Web Pages

  • ["PP3eD/Ch-6-4"] Section 6.4. A Regression Test Script

  • ["PP3eD/Ch-6-5"] Section 6.5. Packing and Unpacking Files

  • ["PP3eD/Ch-6-6"] Section 6.6. Automated Program Launchers

Chapter 7. System Examples: Directories

  • ["PP3eD/Ch-7-1"] Section 7.1. "The Greps of Wrath"

  • ["PP3eD/Ch-7-2"] Section 7.2. Fixing DOS Line Ends

  • ["PP3eD/Ch-7-3"] Section 7.3. Fixing DOS Filenames

  • ["PP3eD/Ch-7-4"] Section 7.4. Searching Directory Trees

  • ["PP3eD/Ch-7-5"] Section 7.5. Visitor: Walking Trees Generically

  • ["PP3eD/Ch-7-6"] Section 7.6. Copying Directory Trees

  • ["PP3eD/Ch-7-7"] Section 7.7. Deleting Directory Trees

  • ["PP3eD/Ch-7-8"] Section 7.8. Comparing Directory Trees

Part III: GUI Programming

Chapter 8. Graphical User Interfaces

  • ["PP3eD/Ch-8-1"] Section 8.1. "Here's Looking at You, Kid"

  • ["PP3eD/Ch-8-2"] Section 8.2. Python GUI Development Options

  • ["PP3eD/Ch-8-3"] Section 8.3. Tkinter Overview

  • ["PP3eD/Ch-8-4"] Section 8.4. Climbing the GUI Learning Curve

  • ["PP3eD/Ch-8-5"] Section 8.5. Tkinter Coding Basics

  • ["PP3eD/Ch-8-6"] Section 8.6. Tkinter Coding Alternatives

  • ["PP3eD/Ch-8-7"] Section 8.7. Adding Buttons and Callbacks

  • ["PP3eD/Ch-8-8"] Section 8.8. Adding User-Defined Callback Handlers

  • ["PP3eD/Ch-8-9"] Section 8.9. Adding Multiple Widgets

  • ["PP3eD/Ch-8-10"] Section 8.10. Customizing Widgets with Classes

  • ["PP3eD/Ch-8-11"] Section 8.11. Reusable GUI Components with Classes

  • ["PP3eD/Ch-8-12"] Section 8.12. The End of the Tutorial

  • ["PP3eD/Ch-8-13"] Section 8.13. Python/Tkinter for Tcl/Tk Converts

Chapter 9. A Tkinter Tour, Part 1

  • ["PP3eD/Ch-9-1"] Section 9.1. "Widgets and Gadgets and GUIs, Oh My!"

  • ["PP3eD/Ch-9-2"] Section 9.2. Configuring Widget Appearance

  • ["PP3eD/Ch-9-3"] Section 9.3. Top-Level Windows

  • ["PP3eD/Ch-9-4"] Section 9.4. Dialogs

  • ["PP3eD/Ch-9-5"] Section 9.5. Binding Events

  • ["PP3eD/Ch-9-6"] Section 9.6. Message and Entry

  • ["PP3eD/Ch-9-7"] Section 9.7. Checkbutton, Radiobutton, and Scale

  • ["PP3eD/Ch-9-8"] Section 9.8. Running GUI Code Three Ways

  • ["PP3eD/Ch-9-9"] Section 9.9. Images

  • ["PP3eD/Ch-9-10"] Section 9.10. Viewing and Processing Images with PIL

Chapter 10. A Tkinter Tour, Part 2

  • ["PP3eD/Ch-10-1"] Section 10.1. "On Today's Menu: Spam, Spam, and Spam"

  • ["PP3eD/Ch-10-2"] Section 10.2. Menus

  • ["PP3eD/Ch-10-3"] Section 10.3. Listboxes and Scrollbars

  • ["PP3eD/Ch-10-4"] Section 10.4. Text

  • ["PP3eD/Ch-10-5"] Section 10.5. Canvas

  • ["PP3eD/Ch-10-6"] Section 10.6. Grids

  • ["PP3eD/Ch-10-7"] Section 10.7. Time Tools, Threads, and Animation

  • ["PP3eD/Ch-10-8"] Section 10.8. The End of the Tour

  • ["PP3eD/Ch-10-9"] Section 10.9. The PyDemos and PyGadgets Launchers

Chapter 11. GUI Coding Techniques

  • ["PP3eD/Ch-11-1"] Section 11.1. "Building a Better Mouse Trap"

  • ["PP3eD/Ch-11-2"] Section 11.2. GuiMixin: Common Tool Mixin Classes

  • ["PP3eD/Ch-11-3"] Section 11.3. GuiMaker: Automating Menus and Toolbars

  • ["PP3eD/Ch-11-4"] Section 11.4. ShellGui: GUIs for Command-Line Tools

  • ["PP3eD/Ch-11-5"] Section 11.5. GuiStreams: Redirecting Streams to Widgets

  • ["PP3eD/Ch-11-6"] Section 11.6. Reloading Callback Handlers Dynamically

  • ["PP3eD/Ch-11-7"] Section 11.7. Wrapping Up Top-Level Window Interfaces

  • ["PP3eD/Ch-11-8"] Section 11.8. GUIs, Threads, and Queues

  • ["PP3eD/Ch-11-9"] Section 11.9. More Ways to Add GUIs to Non-GUI Code

Chapter 12. Complete GUI Programs

  • ["PP3eD/Ch-12-1"] Section 12.1. "Python, Open Source, and Camaros"

  • ["PP3eD/Ch-12-2"] Section 12.2. PyEdit: A Text Editor Program/Object

  • ["PP3eD/Ch-12-3"] Section 12.3. PyPhoto: An Image Viewer and Resizer

  • ["PP3eD/Ch-12-4"] Section 12.4. PyView: An Image and Notes Slideshow

  • ["PP3eD/Ch-12-5"] Section 12.5. PyDraw: Painting and Moving Graphics

  • ["PP3eD/Ch-12-6"] Section 12.6. PyClock: An Analog/Digital Clock Widget

  • ["PP3eD/Ch-12-7"] Section 12.7. PyToe: A Tic-Tac-Toe Game Widget

  • ["PP3eD/Ch-12-8"] Section 12.8. Where to Go from Here

Part IV: Internet Programming

=== Chapter 13. Network Scripting

  • ["PP3eD/Ch-13-1"] Section 13.1. "Tune In, Log On, and Drop Out"

  • ["PP3eD/Ch-13-2"] Section 13.2. Plumbing the Internet

  • ["PP3eD/Ch-13-3"] Section 13.3. Socket Programming

  • ["PP3eD/Ch-13-4"] Section 13.4. Handling Multiple Clients

  • ["PP3eD/Ch-13-5"] Section 13.5. A Simple Python File Server

Chapter 14. Client-Side Scripting

  • ["PP3eD/Ch-14-1"] Section 14.1. "Socket to Me!"

  • ["PP3eD/Ch-14-2"] Section 14.2. FTP: Transferring Files over the Net

  • ["PP3eD/Ch-14-3"] Section 14.3. Processing Internet Email

  • ["PP3eD/Ch-14-4"] Section 14.4. POP: Fetching Email

  • ["PP3eD/Ch-14-5"] Section 14.5. SMTP: Sending Email

  • ["PP3eD/Ch-14-6"] Section 14.6. email: Parsing and Composing Mails

  • ["PP3eD/Ch-14-7"] Section 14.7. pymail: A Console-Based Email Client

  • ["PP3eD/Ch-14-8"] Section 14.8. The mailtools Utility Package

  • ["PP3eD/Ch-14-9"] Section 14.9. NNTP: Accessing Newsgroups

  • ["PP3eD/Ch-14-10"] Section 14.10. HTTP: Accessing Web Sites

  • ["PP3eD/Ch-14-11"] Section 14.11. Module urllib Revisited

  • ["PP3eD/Ch-14-12"] Section 14.12. Other Client-Side Scripting Options

Chapter 15. The PyMailGUI Client

  • ["PP3eD/Ch-15-1"] Section 15.1. "Use the Source, Luke"

  • ["PP3eD/Ch-15-2"] Section 15.2. A PyMailGUI Demo

  • ["PP3eD/Ch-15-3"] Section 15.3. PyMailGUI Implementation

Chapter 16. Server-Side Scripting

  • ["PP3eD/Ch-16-1"] Section 16.1. "Oh What a Tangled Web We Weave"

  • ["PP3eD/Ch-16-2"] Section 16.2. What's a Server-Side CGI Script?

  • ["PP3eD/Ch-16-3"] Section 16.3. Running Server-Side Examples

  • ["PP3eD/Ch-16-4"] Section 16.4. Climbing the CGI Learning Curve

  • ["PP3eD/Ch-16-5"] Section 16.5. Saving State Information in CGI Scripts

  • ["PP3eD/Ch-16-6"] Section 16.6. The Hello World Selector

  • ["PP3eD/Ch-16-7"] Section 16.7. Refactoring Code for Maintainability

  • ["PP3eD/Ch-16-8"] Section 16.8. More on HTML and URL Escapes

  • ["PP3eD/Ch-16-9"] Section 16.9. Transferring Files to Clients and Servers

Chapter 17. The PyMailCGI Server

  • ["PP3eD/Ch-17-1"] Section 17.1. "Things to Do When Visiting Chicago"

  • ["PP3eD/Ch-17-2"] Section 17.2. The PyMailCGI Web Site

  • ["PP3eD/Ch-17-3"] Section 17.3. The Root Page

  • ["PP3eD/Ch-17-4"] Section 17.4. Sending Mail by SMTP

  • ["PP3eD/Ch-17-5"] Section 17.5. Reading POP Email

  • ["PP3eD/Ch-17-6"] Section 17.6. Processing Fetched Mail

  • ["PP3eD/Ch-17-7"] Section 17.7. Utility Modules

  • ["PP3eD/Ch-17-8"] Section 17.8. CGI Script Trade-Offs

Chapter 18. Advanced Internet Topics

  • ["PP3eD/Ch-18-1"] Section 18.1. "Surfing on the Shoulders of Giants"

  • ["PP3eD/Ch-18-2"] Section 18.2. Zope: A Web Application Framework

  • ["PP3eD/Ch-18-3"] Section 18.3. HTMLgen: Web Pages from Objects

  • ["PP3eD/Ch-18-4"] Section 18.4. Jython: Python for Java

  • ["PP3eD/Ch-18-5"] Section 18.5. Grail: A Python-Based Web Browser

  • ["PP3eD/Ch-18-6"] Section 18.6. XML Processing Tools

  • ["PP3eD/Ch-18-7"] Section 18.7. Windows Web Scripting Extensions

  • ["PP3eD/Ch-18-8"] Section 18.8. Python Server Pages

  • ["PP3eD/Ch-18-9"] Section 18.9. Rolling Your Own Servers in Python

  • ["PP3eD/Ch-18-10"] Section 18.10. And Other Cool Stuff

Part V: Tools and Techniques

Chapter 19. Databases and Persistence

  • ["PP3eD/Ch-19-1"] Section 19.1. "Give Me an Order of Persistence, but Hold the Pickles"

  • ["PP3eD/Ch-19-2"] Section 19.2. Persistence Options in Python

  • ["PP3eD/Ch-19-3"] Section 19.3. DBM Files

  • ["PP3eD/Ch-19-4"] Section 19.4. Pickled Objects

  • ["PP3eD/Ch-19-5"] Section 19.5. Shelve Files

  • ["PP3eD/Ch-19-6"] Section 19.6. The ZODB Object-Oriented Database

  • ["PP3eD/Ch-19-7"] Section 19.7. SQL Database Interfaces

  • ["PP3eD/Ch-19-8"] Section 19.8. PyForm: A Persistent Object Viewer

Chapter 20. Data Structures

  • ["PP3eD/Ch-20-1"] Section 20.1. "Roses Are Red, Violets Are Blue; Lists Are Mutable, and So Is Set Foo"

  • ["PP3eD/Ch-20-2"] Section 20.2. Implementing Stacks

  • ["PP3eD/Ch-20-3"] Section 20.3. Implementing Sets

  • ["PP3eD/Ch-20-4"] Section 20.4. Subclassing Built-In Types

  • ["PP3eD/Ch-20-5"] Section 20.5. Binary Search Trees

  • ["PP3eD/Ch-20-6"] Section 20.6. Graph Searching

  • ["PP3eD/Ch-20-7"] Section 20.7. Reversing Sequences

  • ["PP3eD/Ch-20-8"] Section 20.8. Permuting Sequences

  • ["PP3eD/Ch-20-9"] Section 20.9. Sorting Sequences

  • ["PP3eD/Ch-20-10"] Section 20.10. Data Structures Versus Python Built-Ins

  • ["PP3eD/Ch-20-11"] Section 20.11. PyTree: A Generic Tree Object Viewer

Chapter 21. Text and Language

  • ["PP3eD/Ch-21-1"] Section 21.1. "See Jack Hack. Hack, Jack, Hack"

  • ["PP3eD/Ch-21-2"] Section 21.2. Strategies for Parsing Text in Python

  • ["PP3eD/Ch-21-3"] Section 21.3. String Method Utilities

  • ["PP3eD/Ch-21-4"] Section 21.4. Regular Expression Pattern Matching

  • ["PP3eD/Ch-21-5"] Section 21.5. Advanced Language Tools

  • ["PP3eD/Ch-21-6"] Section 21.6. Handcoded Parsers

  • ["PP3eD/Ch-21-7"] Section 21.7. PyCalc: A Calculator Program/Object

Part VI: Integration

Chapter 22. Extending Python

  • ["PP3eD/Ch-22-1"] Section 22.1. "I Am Lost at C"

  • ["PP3eD/Ch-22-2"] Section 22.2. Integration Modes

  • ["PP3eD/Ch-22-3"] Section 22.3. C Extensions Overview

  • ["PP3eD/Ch-22-4"] Section 22.4. A Simple C Extension Module

  • ["PP3eD/Ch-22-5"] Section 22.5. Extension Module Details

  • ["PP3eD/Ch-22-6"] Section 22.6. The SWIG Integration Code Generator

  • ["PP3eD/Ch-22-7"] Section 22.7. Wrapping C Environment Calls

  • ["PP3eD/Ch-22-8"] Section 22.8. A C Extension Module String Stack

  • ["PP3eD/Ch-22-9"] Section 22.9. A C Extension Type String Stack

  • ["PP3eD/Ch-22-10"] Section 22.10. Wrapping C++ Classes with SWIG

  • ["PP3eD/Ch-22-11"] Section 22.11. Other Extending Tools

Chapter 23. Embedding Python

  • ["PP3eD/Ch-23-1"] Section 23.1. "Add Python. Mix Well. Repeat."

  • ["PP3eD/Ch-23-2"] Section 23.2. C Embedding API Overview

  • ["PP3eD/Ch-23-3"] Section 23.3. Basic Embedding Techniques

  • ["PP3eD/Ch-23-4"] Section 23.4. Registering Callback Handler Objects

  • ["PP3eD/Ch-23-5"] Section 23.5. Using Python Classes in C

  • ["PP3eD/Ch-23-6"] Section 23.6. A High-Level Embedding API: ppembed

  • ["PP3eD/Ch-23-7"] Section 23.7. Other Integration Topics

Part VIII: The End

Chapter 24. Conclusion: Python and the Development Cycle

  • ["PP3eD/Ch-24-1"] Section 24.1. "That's the End of the Book, Now Here's the Meaning of Life"

  • ["PP3eD/Ch-24-2"] Section 24.2. "Something's Wrong with the Way We Program Computers"

  • ["PP3eD/Ch-24-3"] Section 24.3. The "Gilligan Factor"

  • ["PP3eD/Ch-24-4"] Section 24.4. Doing the Right Thing

  • ["PP3eD/Ch-24-5"] Section 24.5. Enter Python

  • ["PP3eD/Ch-24-6"] Section 24.6. But What About That Bottleneck?

  • ["PP3eD/Ch-24-7"] Section 24.7. On Sinking the Titanic

  • ["PP3eD/Ch-24-8"] Section 24.8. So What's "Python: The Sequel"?

  • ["PP3eD/Ch-24-9"] Section 24.9. In the Final Analysis . . .

  • ["PP3eD/Ch-24-10"] Section 24.10. Postscript to the Second Edition (2000)

  • ["PP3eD/Ch-24-11"] Section 24.11. Postscript to the Third Edition (2006)

About the Author

Colophon

Index

多嘴多舌

PP3eD (last edited 2011-02-19 05:18:13 by QidongSu)