7-29<X10>kpg.xml 脚本和流
本章标题:Scrips 和 Streams
脚本和流
抽象输入源
Para 1:Python 的最强大力量之一是它的动态绑定,并且动态绑定最强大的用法之一是类文件(file-like)对象。BR
Python 的最强大力量之一是它的动态绑定,而动态绑定最强大的用法之一是类文件(file-like)对象。
例10.1上, Para -2:只要你将一个类文件对象传递给函数,函数只是调用对象的 read 方法,函数可以处理任何类型的输入源,而不需要处理每种类型的特定代码。BR
只要你将一个类文件对象传递给函数,函数只是调用对象的 read 方法,就可以处理任何类型的输入源,而不需要为处理每种类型分别编码。
例10.1上, Para -1:你可能纳闷过这和 XML 处理有什么关系,……
你可能会纳闷,……
e10.1, (3):确保处理完成
文件后调用 close 方法。
e10.2up:哦,所有这些看上去象是在浪费大量的时间。毕竟,你已经看过 minidom.parse 可以只接收文件名,并自动执行所有打开文件和关闭无用文件的行为。不错,如果你知道正要解析的是一个本地文件,你可以传递文件名而且 minidom.parse 可以足够聪明的做正确的事情™,这一切都不会有问题。但是请注意,使用类文件分析直接从Internet上来的 XML 文档是多么相似和容易的事情!BR
哦,所有这些看上去像是在浪费大量的时间。毕竟,你已经看到,minidom.parse 可以只接收文件名,并自动执行所有打开文件和关闭无用文件的行为。不错,如果你知道正要解析的是一个本地文件,你可以传递文件名而且 minidom.parse 可以足够聪明地做正确的事情(Do The Right Thing™),这一切都不会有问题。但是请注意,使用类文件,会使分析直接从 Internet 上来的 XML 文档变得多么相似和容易!BR
我就纳闷了,怎么“做正确的事情”也成了 trademark。顺便加了个注释
这是一部著名的电影。——译注
e10.2, (1):
正如在前一章中所看到的,……
e10.2, (4):By the way, this URL is real, and it really is XML. It's an XML representation of the current headlines on Slashdot, a technical news and gossip site.BR 顺便提一句,这个 URL 是真实的,它真的是一个 XML。它是Slashdot站点(这是一个技术新闻和随笔站点)上当前标题的 XML 表示。BR
顺便提一句,这个 URL 是真实的,它真的是一个 XML。它是 Slashdot 站点(一个技术新闻和随笔站点)上当前新闻提要的 XML 表示。
e10.3down:OK,所以你可以使用 minidom.parse 函数来解析本地文件和远端 URL,但对于解析字符串,你使用……一个不同的函数。BR
好吧,所以你可以使用 minidom.parse 函数来解析本地文件和远端 URL,但对于解析字符串,你使用……另一个函数。
e10.4up:如果有一个方法可以把字符串转换成类文件对象,那么你可以只把
这个对象传递给 minidom.parse 就可以了。
只要
e10.4, (1):StringIO 模块只包含了单个
类,也叫 StringIO,它允许你将一个字符串转换为一个类文件对象。这个
StringIO 类在创建实例的时候接收字符串作为参数。
一个
e10.4, (4):任何时候,read 都将返回字符串的未读剩余
部分。
标准输入、输出和错误
查询缓冲节点
查找节点的直接子节点
根据节点类型创建不同的处理器
处理命令行参数
全部放在一起