Introduction Recipe 2.1. Reading from a File Recipe 2.2. Writing to a File Recipe 2.3. Searching and Replacing Text in a File Recipe 2.4. Reading a Specific Line from a File Recipe 2.5. Counting Lines in a File Recipe 2.6. Processing Every Word in a File Recipe 2.7. Using Random-Access Input/Output Recipe 2.8. Updating a Random-Access File Recipe 2.9. Reading Data from zip Files Recipe 2.10. Handling a zip File Inside a String Recipe 2.11. Archiving a Tree of Files into a Compressed tar File Recipe 2.12. Sending Binary Data to Standard Output Under Windows Recipe 2.13. Using a C++-like iostream Syntax Recipe 2.14. Rewinding an Input File to the Beginning Recipe 2.15. Adapting a File-like Object to a True File Object Recipe 2.16. Walking Directory Trees Recipe 2.17. Swapping One File Extension for Another Throughout a Directory Tree Recipe 2.18. Finding a File Given a Search Path Recipe 2.19. Finding Files Given a Search Path and a Pattern Recipe 2.20. Finding a File on the Python Search Path Recipe 2.21. Dynamically Changing the PythonSearch Path Recipe 2.22. Computing the Relative Path from One Directory to Another Recipe 2.23. Reading an Unbuffered Character in a Cross-Platform Way Recipe 2.24. Counting Pages of PDF Documents on Mac OS X Recipe 2.25. Changing File Attributes on Windows Recipe 2.26. Extracting Text from OpenOffice.org Documents Recipe 2.27. Extracting Text from Microsoft Word Documents Recipe 2.28. File Locking Using a Cross-Platform API Recipe 2.29. Versioning Filenames Recipe 2.30. Calculating CRC-64 Cyclic Redundancy Checks |