建议40:深入掌握ConfigParser
# -*- coding:utf-8 -*-
'''
1、getboolean() 根据一定的规则将配置项的值转换为布尔值
getboolean() 的真值规则:
0、no、false 和off 都会被转义为False
1、yes、true 和on则都被转义为True
其他值都会导致抛出ValueError 异常 在ConfigParser支持的配置文件格式里,有一个[DEFAULT] 节,当读取的配置项在不在指定的节里时,ConfigParser
将会到[DEFAULT] 节中查找 get(section, option[, raw[, vars]]) 中的全名参数vars,查找规则如下:
1)如果找不到节名,就抛出NoSectionError。
2)如果给定的配置项出现在get() 方法的vars 参数中,则返回vars 参数中的值。
3)如果在指定的节中含有给定的配置项,则返回其值。
4)如果在[DEFAULT] 中有指定的配置项,则返回其值。
5)如果在构造函数的defaults 参数中有指定的配置项,则返回其值。
6)抛出NoOptionError。 '''
'''
示例:C:\\example.ini
[DEFAULT]
in_default = 'an option value in default'
conn_str = %(dbn)s://%(user)s:%(pw)s@%(host)s:%(port)s/%(db)s
dbn = mysql user = root
host=localhost
port = 3306 [section1]
option1=0 [db1]
user = aaa
pw=ppp
db=example [db2]
host=192.168.0.110
pw=www
db=example
''' import ConfigParser
conf = ConfigParser.ConfigParser()
conf.read("C:\\example.ini")
print conf.getboolean('section1', 'option1')
print conf.get('db1', 'conn_str')
print conf.get('db2', 'conn_str') '''
False
mysql://aaa:ppp@localhost:3306/example
mysql://root:www@192.168.0.110:3306/example
'''
建议40:深入掌握ConfigParser的更多相关文章
- [改善Java代码]建议40:匿名类的构造函数很特殊
建议40: 匿名类的构造函数很特殊 在上一个建议中我们讲到匿名类虽然没有名字,但可以有一个初始化块来充当构造函数,那这个构造函数是否就和普通的构造函数完全一样呢?我们来看一个例子,设计一个计算器,进行 ...
- 编写高质量代码改善C#程序的157个建议——建议40:使用event关键字为委托施加保护
建议40:使用event关键字为委托施加保护 在建议中我们实现了一个具有通知功能的文件传输类,如下: class FileUploader { public delegate void FileUpl ...
- 对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- 对 Android 开发者有益的 40 条优化建议
本文转载于:http://www.oschina.net/translate/40-developer-tips-for-android-optimization?cmp 下面是开始Android编程 ...
- 【转】对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- [转]对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- 对Android 开发者有益的 40 条优化建议(转)
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- 我的Android进阶之旅------>对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- 改善Python 程序的 91 个建议
建议1.理解Pythonic概念—-详见Python中的<Python之禅> 建议2.编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量.使用容易混淆的变量名.害怕过长 ...
随机推荐
- lamp环境编译安装curl扩展
Linux编译安装php扩展包curl 1.curl,主要用于发送http请求,是php的一个扩展包. 2.安装过程: (1)curl下载:http://curl.haxx.se/download.h ...
- PHP 7的一些引人注目的新特性简单介绍
1. ?? 运算符(NULL 合并运算符)把这个放在第一个说是因为我觉得它很有用.用法: ? 1 $a = $_GET['a'] ?? 1; 它相当于: ? 1 2 <?php $a = iss ...
- 解决xshell6评估过期,需采购问题
2018年12月20日补充 绿色免安装版: https://www.lanzous.com/i2njdre 密码:9b7t 2018年7月18日补充 感谢s***5大佬提供注册包,有需要的小伙伴,请留 ...
- db2 blob EMPTY_BLOB()
--针对BLOG类型的列,写入一个0长度的字符串
- Unity3D学习笔记——NGUI之UIButton
前言:用于接受点击,悬停,触摸等事件.UIButton还有重要的用途,就是改变控件不同状态下的颜色. 一:使用方式: 1.在UI Root中右键创建一个Sprite 2.为其添加一个碰撞组件,就添加B ...
- java的一些问题
1. 判断是否是奇数: public static boolean isOdd(int i) { return i %2 != 0 ; } 2. System.out.println(2.0 - 1. ...
- node.js调用模块
1.新建调用的js 第一种调用没有初始值的模块 var http = require('http'); var User = require('./module/User');//引入的是user模块 ...
- 创建新的C++工程来调用Caffe对图片进行识别
前段时间一直在跑Caffe训练数据.之前用训练好的caffemodel对图片进行分类都是用的命令行指令,于是就想着自己新建一个工程来调用caffe,结合classification的代码来对图片进行分 ...
- 时间格式转换 json 转 datetime js c#
情景描述:使用C#在后台中传递时间到ajax中,因为是一个list<model>就直接用了Json 作为载体,但是在js中获得到的时间是var time='/Date(********** ...
- HTML随意记录
HTML特殊符号对照表: http://www.cnblogs.com/knowledgesea/archive/2013/07/24/3210703.html