Python 2.7 ConfigParser 中的 ExtendedInterpolation()

ExtendedInterpolation() in the Python 2.7 ConfigParser

我有 Python 脚本用 3.x 版本编写,由于环境限制,我需要在 2.7 中进行转换。

我设法重构了大部分语法差异和模块导入,但我遇到了一行我不知道如何处理的代码:

def readConfigFile(self, file):
        config = ConfigParser.ConfigParser(interpolation = ConfigParser.ExtendedInterpolation())
        config.optionxform = str
        config.read(file)

**config = ConfigParser.ConfigParser(interpolation = ConfigParser.ExtendedInterpolation())**

我在这里找到了一些参考( Python ConfigParser interpolation from foreign section) ,但我不知道如何替换(重构)。

ConfigParser :

所以我的问题是,有没有什么方法可以重构上面的代码以在 python 2.7 中工作并保留功能?

如另一个问题 (Python ConfigParser interpolation from foreign section) 所述,不,不幸的是,没有一种简单的方法可以做到这一点。您需要为返回值创建自己的解析器并迭代它们。不过这似乎有点笨拙。

我通过使用

让这个在 ArcPy 2.7 中工作
from backports import configparser

config = configparser.ConfigParser(interpolation=configparser.ExtendedInterpolation())
config.read('path/to/the/config_file.cfg')

然后我在配置文件中使用了以下代码:

[Section 1]
foo: bar

...

[Section 5]
foo:  ${Section1:foo}

在解释器中尝试调用会产生预测结果:

config['Section 5']['foo']
>>> bar