用Oracle和Python武装你的头脑(3)
添加时间: 2008-4-23 22:59:54 作者: Oracle指导 阅读次数:14 来源: http://www.d9soft.com
能否执行 strip?根据上面显示的内容,应该可以执行。按照约定,一个简单的文档字符串存储在每个对象的 __doc__ 方法中。(类似 __doc__ 这样的以两个下划线开头和结尾的名称保留给系统定义的特殊方法和属性使用。)下面我们将打印 strip.__doc__,看看它是否是您所需的。
>>> print firstLine.strip.__doc__
S.strip([chars]) -> string or unicode
返回字符串 S 的一个副本,并删除了前导空格和后缀空格。
如果给出了 chars 且非 None,则删除 chars 中字符。
如果 chars 为 unicode,则在剥离前将把 S 转换为 unicode
>>> firstLine = firstLine.strip()
>>> firstLine
'DB_BLOCK_SIZE=8192'
接下来,您需要对 firstLine 中的参数与其值进行区分。尽管很想展示一下 Python 强大的正则表达式处理能力,但我们还是采用了一个更简单的方式:字符串方法 split()。
>>> firstLine.split('=')
['DB_BLOCK_SIZE', '8192']
变量和赋值
调用 split() 生成了一个由位于分隔符 = 之前和之后的字符串组成的列表。遗憾的是,由于您未将该结果指定给任何变量,因此结果只显示到屏幕,随后就不见了。这次,您将使用多个赋值来同时捕获两个结果。您可能想使用向上箭头键来省去一些键入操作。
>>> param, val = firstLine.split('=')
>>> param
'DB_BLOCK_SIZE'
>>> val
'8192'
实际上,您将需要分别存储多个参数的值。这种场合最适于使用一个称作字典的强大 Python 变量类型。字典是一个无序的键集,即值对;实际上,它与 Oracle 数据库中的普通(堆)表非常相似。键和值可以是数字、字符串或其他对象。您将创建一个空字典,并使用您到目前为止提取的信息填充它。
>>> initParams = {}
>>> initParams[param] = val
>>> initParams
{'DB_BLOCK_SIZE': '8192'}
现在,从打开的文件中提取另一行,并将该行也存储到字典中。这次,您将把 strip() 直接连接到 readline() 的结尾,就好象您在使用一个 UNIX 管道。
>>> nextLine = initFile.readline().strip()
>>> param, val = nextLine.split('=')
>>> initParams[param] = val
>>> initParams
{'DB_BLOCK_SIZE':'8192', 'COMPATIBLE': '9.2.0.0.0'}
上一篇文章: 用Oracle和Python武装你的头脑(5) 下一篇文章: 关于oracle的备份策略
相关文章:
相关软件:

