我是Python的菜鸟
问题:在文件中查找并替换Keys(字符串)
为此,我使用的是Python ConfigParser。但我想立即将整个配置(.ini)文件读入字典而不管各个部分。
我不想一次阅读一个部分
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
如果你想要一个字典,它将配置文件中的所有值作为键值对而不考虑它的部分,我认为你的方法是正确的
dict={}
for sec in config.sections():
for item in config.items(sec):
dict[item[0]]=item[1]
我认为您只能阅读不同的部分,以便为部分中的每个选项获取不同的值。
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)