用Oracle和Python武装你的头脑(4)
添加时间: 2008-4-23 22:57:42 作者: Oracle指导 阅读次数:9 来源: http://www.d9soft.com
编写脚本
现在,您已经以交互方式试用了解释器,下面您将准备编写一个 Python 脚本来处理整个文件。使用 Ctrl-D(在 Unix/ Linux 中)或 Ctrl-Z(在 Windows 中)退出 Python 解释器,然后创建一个文本文件 - 称之为 readInitOra.py。
initFile = open('init_orcl.ora', 'r')
initParams = {}
rawTextLine = initFile.readline()
while rawTextLine:
param, val = rawTextLine.strip().split('=')
initParams[param] = val
rawTextLine = initFile.readline()
print initParams
在阅读此代码时,您很可能想到“命令结尾的分号哪去了?BEGIN 和 END 语句以及用于标记块的大括号哪去了?”实际上,Python 并不使用这些符号。按照惯例,几乎所有编程人员都使用换行符分隔命令,并使用缩进指示代码块,以便用户可以阅读代码。同时,Python 以外的大多数语言都要求他们使用一套不同的符号与编译器或解释器进行通信。使用两套符号将使代码杂乱不堪,并将产生一个很大的风险 - 显示给人眼的符号可能与显示给计算机的符号不同步,从而产生另人难以理解的错误。而 Python 可以像用户那样读取代码,从而消除了混乱并避免出现风险。
下面我们来看看代码操作。在操作系统提示符(而非 Python 解释器提示符)下,键入
c:> python readInitOra.py
{'UNDO_MANAGEMENT':'AUTO', 'COMPATIBLE': '9.2.0.0.0',
'DB_BLOCK_SIZE':'8192', 'FAST_START_MTTR_TARGET' : '300',
'SGA_MAX_SIZE':157286400, 'SHARED_POOL_SIZE': '50331648'}
如果您习惯将 readInitOra.py 中的所有行缩进几个空格,则将使 Python 混淆并产生一个语法错误。缩进指示代码块,因此在不指示代码块的情况下请不要进行缩进。返回并确保不在块中的每一行都从第 1 列开始。
您实际上需要在多个位置使用此代码,因此我们将其从简单的脚本改进为接受参数的函数定义。
def read(fileName):
initFile = open(fileName, 'r')
initParams = {}
rawTextLine = initFile.readline()
while rawTextLine:
param, val = rawTextLine.strip().split('=')
initParams[param] = val
rawTextLine = initFile.readline()
return initParams
上一篇文章: 索引与Null值对Hints及执行计划的影响 下一篇文章: 用Oracle和Python武装你的头脑(5)
相关文章:
相关软件:

