python读取ini文件所有节点,使用Python将ini文件中的所有内容读入字典_乔安娜Joanna的博客-程序员宅基地

技术标签: python读取ini文件所有节点  

Normally, I code as follows for getting a particular item in a variable as follows

try:

config = ConfigParser.ConfigParser()

config.read(self.iniPathName)

except ConfigParser.MissingSectionHeaderError, e:

raise WrongIniFormatError(`e`)

try:

self.makeDB = config.get("DB","makeDB")

except ConfigParser.NoOptionError:

self.makeDB = 0

Is there any way to read all the contents in a python dictionary?

For example

[A]

x=1

y=2

z=3

[B]

x=1

y=2

z=3

is written into

val["A"]["x"] = 1

...

val["B"]["z"] = 3

解决方案

I suggest subclassing ConfigParser.ConfigParser (or SafeConfigParser, &c) to safely access the "protected" attributes (names starting with single underscore -- "private" would be names starting with two underscores, not to be accessed even in subclasses...):

import ConfigParser

class MyParser(ConfigParser.ConfigParser):

def as_dict(self):

d = dict(self._sections)

for k in d:

d[k] = dict(self._defaults, **d[k])

d[k].pop('__name__', None)

return d

This emulates the usual logic of config parsers, and is guaranteed to work in all versions of Python where there's a ConfigParser.py module (up to 2.7, which is the last of the 2.* series -- knowing that there will be no future Python 2.any versions is how compatibility can be guaranteed;-).

If you need to support future Python 3.* versions (up to 3.1 and probably the soon forthcoming 3.2 it should be fine, just renaming the module to all-lowercase configparser instead of course) it may need some attention/tweaks a few years down the road, but I wouldn't expect anything major.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42218981/article/details/118899965

智能推荐

HDU2083简易版之最短距离_abner_Tan的博客-程序员宅基地

简易版之最短距离Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15057    Accepted Submission(s): 6648Problem Description寒假的时候,ACBOY要去拜访很

金三银四跳槽季,程序员面试必备书单_数智物语的博客-程序员宅基地

文章发布于公号【数智物语】 (ID:decision_engine),关注公号不错过每一篇干货。来源 | 程序员书库(ID:OpenSourceTop)又到了金三银四的“跳槽黄金季”,找到一份工作不是问题,但找到一个合适而满意的工作,却不那么简单。为此,小编为你精选一份程序员面试书单,分为职业规划、编程技能、沟通能力三部分。01职业规...

翻译并不是你想的那么容易_zhaoyan_cpp的博客-程序员宅基地

最近非常有幸的接受了人民邮电出版社的邀请,翻译《21st Centure C》这个书,这是一本非常经典的C语言著作,目前已经是第二版了。计算机书出了很多年,大家对其自有判断,最简单的办法就是根据书名,最开始出版过几本比较经典的书,书名为:《**入门到精通》,《21天学会**》。不过很快大家就开始借用这种书名,搞得有些真伪难辨。更有甚者,最近出现了好多,《**从入门到放弃》, 《**从入门到入院》 系列丛书,彻底颠覆了以前程序员中这么神圣的书名。好在还有O’Reilly出版社的以动物为封面的丛书,这些动物还都

执行docker daemon命令时出错的解决方案_yzl11的博客-程序员宅基地

一开始执行docker daemon命令时总是会出错导致进程stop,按照网上的方法在/etc/fstab文件里添加了一行none        /sys/fs/cgroup        cgroup        defaults    0    0这时docker daemon可以起来了,但是有了新的问题——执行docker run命令时出现“no left space on dev

测试使用mysqlbinlog进行恢复删除的数据_文档搬运工的博客-程序员宅基地

创建测试用的数据库binlog,在里面创建表test,插入并删除数据,然后通过mysqlbinlog解析对应的binlog日志。生成相应的sql语句,进行恢复(这个仅仅是测试,有些还没有搞清楚,还有一些疑问,后面搞清楚了再贴上来)创建数据库和表,这个时候的binlog是mysql3306-bin.000030create database binlog; -- binlog 30...

工业互联网应用场景_凌晨两点钟同学的博客-程序员宅基地

五大应用场景:数据采集与感知 生产环境数据采集与感知,生产设备数据采集与感知、生产要素数据采集与感知 远程控制 行业装备,港口岸桥吊、龙门吊,远程驾驶,云化PLC,云化AGV AI机器视觉 远程辅助 5G+AR巡检维护,5G+AR/VR远程培训,5G+AR辅助装配,5G+AR/VR展厅 产业协同 产业集群协作,供应链+区块链,产业全生命周期溯源,协同研发设计 ...

随便推点

Xilinx RS编码IP核仿真验证_yundanfengqing_nuc的博客-程序员宅基地

最近做的项目中用到了RS编码,FPGA代码中是通过调用Reed-Solomon Encoder IP核来实现的。这里以R-S(255,223)为例,分别对单通道和多通道两种情况进行了仿真验证,下面给出具体的fpga ip核配置以及仿真。(一)单通道FPGA中RS IP核的配置如下图所示:标注1:编码说明,这里选择Custom,后面将与CCSDS进行对比。标注2:符号宽度:这里选择8。标注3:这里与域生成多项式保持一致,本例中域生成多项式为:F(x) = x8 + x7 + x2 +.

【180929】LED数独小游戏源码_资源小站的博客-程序员宅基地

采用WebForm制作的一个LED数字显示功能的数独小游戏;游戏分为:开始游戏,选项,功能功能模块及帮助;大致玩法:由随机生成的数字,根据这些数字去改变每行或每列上的一小格的数字,保证一行或一列中不会相同出现同一个数字,就算过关!并且有进度表和时间去记录你的效率;本程序是在VS2010环境下使用C#开发源码下载地址:点击下载备用下载地址:点击下载...

undo tablespace_zhuruxin1234的博客-程序员宅基地

ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'SELECT a.tablespace_name as tablespace_name, to_char(b.total/1024/1024,999999.99) as Total, to_char((b.total...

C/C++编程题之求两个数的最大公约数和最小公倍数_飞的更高y的博客-程序员宅基地

求两个数的最大公约数和最小公倍数方法:最大公约数使用辗转相除法求,最小公倍数等于两个数的乘积/最大公约数

初体验_zh_404的博客-程序员宅基地_初体验

第一篇博客记录工作中遇到的问题2020.11.17

基于百度翻译API开发属于自己的翻译工具_NET专家的博客-程序员宅基地

你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那每次弹出来的广告?其实我们想要的就是简单的翻译一个单词。今天就来使用百度翻译开放API,做一个属于自己的翻译工具,只有简单的翻译功能,至于外观自己根据自己的爱好,想做成什么样就做成什么样,终于可以任性

推荐文章

热门文章

相关标签