本节书摘来自异步社区《Python 3程序开发指南(第2版•修订版)》一书中的第7章,第7.5节,作者[英]Mark Summerfield,王弘博,孙传庆 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
7.5 总结
本章展示了用于从文件中加载组合型数据(或将组合型数据保存到文件中)的使用最广泛的技术。我们了解了pickles的易用性,以及如何在预先并不知道是否已进行压缩的前提下来处理压缩文件与未压缩文件。
我们了解了在读、写二进制数据时应该注意哪些事项,也知道如果需要处理可变长度的字符串,代码就会很长。同时我们也获知,使用二进制文件通常会产生最小的文件大小,所需要的读、写时间也最少。我们还学习了使用魔数来标识文件类型、使用版本号使程序可以适应后面格式变化的重要性。
本章中,我们知道,对用户而言,普通文本是用户可以读取的最简单的格式,并且,如果数据有良好的结构化特点,那么创建可以操纵该数据的额外工具是直截了当的。然而,分析文本文件可以是棘手的。本章中,我们同时学习了手动方式与使用正则表达式来读取文本数据的技术。
XML是一个非常流行的数据交换格式,通常,即便格式是二进制格式或文本格式,具备至少可以导入、导出XML格式的能力也是很有用的。我们学习了如何手动写XML——包括如何对属性值与文本数据进行正确的转义处理——以及如何使用元素树与DOM写XML。我们也学习了如何使用元素树、DOM以及SAX分析器(由Python库提供)对XML进行分析。
在7.4节中,我们学习了如何创建一个通用类来处理随机存取二进制文件,如何存放固定大小的记录,以及如何在特定的上下文中使用通用类。
本章是讲述Python程序设计基础知识的最后一章,停止阅读,并借助到此为止所讲述的知识来编写非常好的Python程序是可能的。但是如果现在就停止阅读将是一个遗憾——Python所能提供的如此之多,从可以缩小与简化代码的灵巧技术,到一些高级工具,即便不总是需要使用,但知道也是有好处的。下一章中,我们将更深入地讲解关于过程型程序设计与面向对象程序设计的相关知识,也涉及函数型程序设计的相关内容。之后,在后面的几章中,我们将集中讲述一些更广的程序设计技术,包括线程、网络、数据库程序设计、正则表达式以及GUI(图形用户界面)程序设计。