无法使用ConfigParser找到配置

时间:2017-09-20 20:16:30

标签: python linux

我正在尝试打开配置文件,读取值,然后使用该值打开另一个配置文件。具体来说,我的配置文件位于$ HOME / bin / config下,位于名为Profile.ini的文件中。然后,这给了我是否应该打开另一个名为Configuration.ini的配置的信息,该配置位于$ HOME / bin / config / config1,$ HOME / bin / config / config2中。 python代码本身是从$ HOME / TestSystems运行的。但是,当我尝试运行此代码时,它最终找不到配置文件并且无法打开它。以下是我的代码:

import ConfigParser

class ConfigManager(object):
    """docstring for ConfigManager."""
    def __init__(self):
        super(ConfigManager, self).__init__()
        self.path = '$HOME/bin/config/'

    def getConfig(self):
        path = ConfigParser.ConfigParser()
        print self.path+'Profile.ini'
        path.read(self.path+'Profile.ini')
        for sectionName in path.sections():
            print 'Section:', sectionName
            print '  Options:', path.options(sectionName)
            for name, value in path.items(sectionName):
                print '  %s = %s' % (name, value)
            print
        activeProfile = path.get('Profiles', 'ActiveProfile')
        configPath = self.path + activeProfile + '/Configuration.ini'
        config = ConfigParser.ConfigParser()
        configProfile = config.read(configPath)

当我运行此代码时,我得到以下输出:

$HOME/bin/config/Profile.ini
Traceback (most recent call last):

activeProfile = path.get('Profiles', 'ActiveProfile')
ConfigParser.NoSectionError: No section: 'Profiles'

这意味着此代码未找到配置并正确打开它。我正在试图弄清楚这段代码有什么问题以及我需要做些什么来使它正常工作

1 个答案:

答案 0 :(得分:2)

那是因为你试图在python中使用shell变量。

我冒昧地根据PEP8的标准(包括错误修复)稍微调整你的代码:

position: fixed;