Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有多个部分和相同选项名称的ConfigParser?_Python_Jython_Configparser - Fatal编程技术网

Python 具有多个部分和相同选项名称的ConfigParser?

Python 具有多个部分和相同选项名称的ConfigParser?,python,jython,configparser,Python,Jython,Configparser,我想让ConfigParser解决看似简单的问题,但我有一个古老的2.2 Jython系统(无法更新) 我想在我的配置文件中循环各部分,并对其值使用相同的操作。第一部分读起来不错,但在循环的第二次迭代中,我得到了“exceptions.AttributeError” 我(非常)简化的脚本: import ConfigParser config = ConfigParser.ConfigParser() try: config.optionxform = str config.r

我想让ConfigParser解决看似简单的问题,但我有一个古老的2.2 Jython系统(无法更新)

我想在我的配置文件中循环各部分,并对其值使用相同的操作。第一部分读起来不错,但在循环的第二次迭代中,我得到了“exceptions.AttributeError”

我(非常)简化的脚本:

import ConfigParser
config = ConfigParser.ConfigParser()

try:
    config.optionxform = str
    config.read(domainConfigFile);

    domainList = config.get("Domains","DomainList")
    domainNames = domainList.split(",")

    for dName in domainNames:
        UCF = config.get(dName,"uHome") + '/'+config.get(dName,"userConfigFile")
        UKF = config.get(dName,"uHome") + '/'+config.get(dName,"userKeyFile")
        admU = config.get(dName,"admU")

        print "UCF=["+UCF+"] UKF=["+UKF+"] admU=["+admU+"]"
except:
    print "Error occurred"

我还不是很精通Python(但这个问题让我如此)。我一直在研究类似的问题,并使用一些修改dict的代码片段,它们在一个股票Python 2.6解释器中工作,但在Jython 2.2.6中都失败得很惨。如何在不同的部分伪造相同的键名,以便它们都可以寻址?

异常的名称很有用。完整的异常堆栈跟踪更有用。这样,您就可以确切地看到引发异常的位置。第一次通过循环时,它会像我期望的那样获得第一节信息(UCF=/opt/app/myapp/configs/idm-JIT.config,UKF=/opt/app/myapp/configs/idm-JIT.key,admU=)。但是,第二次循环时,它会在第一个config.get()语句处停止并抛出异常。我正在重复使用相同的选项名称,但已分配给另一个分区。
Domains
分区是不必要的。在循环中,尝试改用
config.sections()
,并将
Exception
更改为
Exception,e:print e
。这会帮助你解决问题。如果没有,请将异常发回这里,我们将从这里开始。我找到了原因,这是名称冲突。我在主脚本中调用的一个子函数显然重写了“config”对象。意外错误:exceptions.AttributeError Traceback(最里面的最后一个):文件“/opt/app/oracle/middleware/shared/config/scripts/startme.py”,第333行,in?文件“/opt/app/oracle/middleware/shared/config/scripts/startme.py”,第303行,在executeCommand文件“/opt/app/oracle/middleware/shared/config/scripts/startme.py”,第232行,在_startallattributeError:“function”对象没有属性“get”
import ConfigParser
config = ConfigParser.ConfigParser()

try:
    config.optionxform = str
    config.read(domainConfigFile);

    domainList = config.get("Domains","DomainList")
    domainNames = domainList.split(",")

    for dName in domainNames:
        UCF = config.get(dName,"uHome") + '/'+config.get(dName,"userConfigFile")
        UKF = config.get(dName,"uHome") + '/'+config.get(dName,"userKeyFile")
        admU = config.get(dName,"admU")

        print "UCF=["+UCF+"] UKF=["+UKF+"] admU=["+admU+"]"
except:
    print "Error occurred"