Python读取配置文件,无论部分如何

问题描述 投票:0回答:2

我是Python的菜鸟

问题:在文件中查找并替换Keys(字符串)

为此,我使用的是Python ConfigParser。但我想立即将整个配置(.ini)文件读入字典而不管各个部分。

  1. 可能吗?
  2. 这样做可以吗?

我不想一次阅读一个部分

dict(Config.items('Section'))

不想遍历这些部分

for each_section in conf.sections():
    for (each_key, each_val) in conf.items(each_section):
        print each_key
        print each_val

我还有哪些其他选择?

-------编辑1 -------

config.ini文件

[Common]
home_dir: /Users
library_dir: /Library
system_dir: /System
macports_dir: /opt/local

[Frameworks]
Python: 3.2
path: ${Common:system_dir}/Library/Frameworks/

[Arthur]
nickname: Two Sheds
last_name: Jackson
my_dir: ${Common:home_dir}/twosheds
my_pictures: ${my_dir}/Pictures
python_dir: ${Frameworks:path}/Python/Versions/${Frameworks:Python}

下面是包含要替换的键的文件

my dir is home_dir
my lib dir is library_dir
python path is path
My pictures are placed at my_pictures
python readfile configparser findandmodify
2个回答
0
投票

如果你想要一个字典,它将配置文件中的所有值作为键值对而不考虑它的部分,我认为你的方法是正确的

dict={}
for sec in config.sections():
    for item in config.items(sec):
        dict[item[0]]=item[1]

0
投票

我认为您只能阅读不同的部分,以便为部分中的每个选项获取不同的值。

dict_sectionValues = {}
for section in Config.sections():
    for option in Config.options(section):
        value = Config.get(section, option)
        dict_sectionValues[option] = value

我认为它的可读性稍差,但你可以减少到:

dict_sectionValues = {}
for section in Config.sections():
    for option in Config.options(section):
        dict_sectionValues[option] = Config.get(section, option)
© www.soinside.com 2019 - 2024. All rights reserved.