python读取配置文件 ConfigParser
Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件。
配置文件的格式
a) 配置文件中包含一个或多个 section, 每个 section 有自己的 option;
b) section 用 [sect_name] 表示,每个option是一个键值对,使用分隔符 = 或 : 隔开;
c) 在 option 分隔符两端的空格会被忽略掉
d) 配置文件使用 # 和 ; 注释
一个简单的配置文件样例 myapp.conf
1
2
3
4
5
6
7
8
9
10
11
12
|
# database source
[db]
host = 127.0 . 0.1
port = 3306
user = root
pass = root
# ssh
[ssh]
host = 192.168 . 1.101
user = huey
pass = huey
|
ConfigParser 的基本操作
a) 实例化 ConfigParser 并加载配置文件
1
2
|
cp = ConfigParser.SafeConfigParser()
cp.read( 'myapp.conf' )
|
b) 获取 section 列表、option 键列表和 option 键值元组列表
1
2
3
|
print 'all sections:' , cp.sections() # sections: ['db', 'ssh']
print 'options of [db]:' , cp.options( 'db' ) # options of [db]: ['host', 'port', 'user', 'pass']
print 'items of [ssh]:' , cp.items( 'ssh' ) # items of [ssh]: [('host', '192.168.1.101'), ('user', 'huey'), ('pass', 'huey')]
|
c) 读取指定的配置信息
1
2
|
print 'host of db:' , cp.get( 'db' , 'host' ) # host of db: 127.0.0.1
print 'host of ssh:' , cp.get( 'ssh' , 'host' ) # host of ssh: 192.168.1.101
|
d) 按类型读取配置信息:getint、 getfloat 和 getboolean
print type(cp.getint('db', 'port')) # <type 'int'>
e) 判断 option 是否存在
1
|
print cp.has_option( 'db' , 'host' ) # True
|
f) 设置 option
1
|
cp. set ( 'db' , 'host' , '192.168.1.102' )
|
g) 删除 option
1
|
cp.remove_option( 'db' , 'host' )
|
h) 判断 section 是否存在
print cp.has_section('db') # True
i) 添加 section
cp.add_section('new_sect')
j) 删除 section
cp.remove_section('db')
k) 保存配置,set、 remove_option、 add_section 和 remove_section 等操作并不会修改配置文件,write 方法可以将 ConfigParser 对象的配置写到文件中
cp.write(open('myapp.conf', 'w')) cp.write(sys.stdout)
Unicode 编码的配置
配置文件如果包含 Unicode 编码的数据,需要使用 codecs 模块以合适的编码打开配置文件。
myapp.conf
[msg] hello = 你好
config_parser_unicode.py
import ConfigParser import codecscp = ConfigParser.SafeConfigParser() with codecs.open('myapp.conf', 'r', encoding='utf-8') as f:cp.readfp(f)print cp.get('msg', 'hello')
allow_no_value
通常情况下, option 是一个键值对。但是,当 SafeConfigParser 的参数 allow_no_value 设置成 True 时,它允许 option 不设置值而只是作为一个标识。
allow_no_value.conf
# option as Flag
[flag]
flag_opt
allow_no_value.py
import ConfigParsercp = ConfigParser.SafeConfigParser(allow_no_value = True) cp.read('myapp.conf') print cp.get('flag', 'flag_opt'); # None
allow_no_value 默认设置成 False,此时如果配置文件中存在没有设置值的 option,在读取配置文件时将抛出异常 ConfigParser.ParsingError。当 allow_no_value 设置成 True 时,如果一个 option 没有设置值,has_option 方法会返回 True,get 方法会返回 None。
DEFAULT section
如果配置文件中存在一个名为 DEFAULT 的 section,那么其他 section 会扩展它的 option 并且可以覆盖它的 option。
db.conf
[DEFAULT] host = 127.0.0.1 port = 3306[db_root] user = root pass = root[db_huey] host = 192.168.1.101 user = huey pass = huey
default_section.py
print cp.get('db_root', 'host') # 127.0.0.1 print cp.get('db_huey', 'host') # 192.168.1.101
插值 Interpolation
SafeConfigParser 提供了插值的特性来结合数据。
url.conf
[DEFAULT] url = %(protocol)s://%(server)s:%(port)s/[http] protocol = http server = localhost port = 8080[ftp] url = %(protocol)s://%(server)s/ protocol = ftp server = 192.168.1.102
interpolation_demo.py
import ConfigParsercp = ConfigParser.SafeConfigParser() cp.read('url.conf')print cp.get('http', 'url') # http://localhost:8080/ print cp.get('ftp', 'url') # ftp://192.168.1.102/
更多 ConfigParser 的使用,参考:
http://blog.csdn.net/zm2714/article/details/8002125
转载于:https://www.cnblogs.com/ruiy/p/7154616.html
python读取配置文件 ConfigParser相关推荐
- python读取配置文件configparser模块
python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件 目录 1.新建配置文件 2.读取配置文件 3.打印读取内容 1.新建配置文件 con ...
- python读取配置文件-configparser
一:首先在包目录下创建文件夹:config config下创建test.conf文件 [section1] #节点 name = tank #k = v age = 28[payload] page ...
- python读取配置文件存在某配置_Python读取配置文件(config.ini)以及写入配置文件
一.读取配置文件 我的目录如下,在config下有一个config.ini配置文件 配置文件内容# 定义config分组 [config] platformName=Android appPackag ...
- python读取sqlserver数据库方法_SQLServer数据库之Python读取配置文件,并连接数据库SQL Server...
本文主要向大家介绍了SQLServer数据库之Python读取配置文件,并连接数据库SQL Server,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 用配置文件保存固定 ...
- python火狐配置文件_Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容...
封装一个自己的类-浏览器引擎类 前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动 ...
- Python 读取配置文件常用几种方式
我们在设计自动化测试框架的时候,经常使用到配置文件,而配置文件种类有很多,常见的配置文件格式有很多中:ini.yaml.xml.properties.txt.py等. 配置文件ini 虽然配置文件放置 ...
- python 读取配置文件config_python中读取配置文件ConfigParser
在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介 ...
- python读取配置文件并添加字典中_Python如何使用ConfigParser读取配置文件
在项目过程中,需要设置各种IP和端口号信息等,如果每次都在源程序中更改会很麻烦(因为每次都要重启项目重新加载配置信息),因此将需要修改的参数写在配置文件(或者数据库)中,每次只需修改配置文件,就可以实 ...
- python读取配置文件获取所有键值对_python读取配置文件 变量 ConfigParser模块
Python 读取写入配置文件很方便,可使用内置的 configparser 模块 配置文件:config.ini [oppo] platformName = Android platformVers ...
最新文章
- 怎么判断前轮左右的位置_汽车上主要传感器的安装位置,你知道多少?
- 单点登录Redis存储Session及SessionId问题说明与集群实战-2
- 用户会话,数据控件和AM池
- 巨额流量费其实可以避免
- 安装完补丁后是否需要服务器重新启动
- 分库分表学习总结(4)——分布式事务常见应用场景总结
- IOS硬件解码VTDecompressionSession失效
- Spring Boot/Spring面试常见问题
- 深度阅读----人工智能简史及其思维辩证
- 安卓熄屏录像_最屌免费安卓Android屏幕录像软件 (免ROOT)
- ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得NUMBER
- 米家扫地机器人尘盒怎么取_米家扫地机器人1S:从里到外全面提升 拥有超高性价比...
- 第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(沈阳)
- 基于互联网的项目管理——Microsoft Project Central 及其应用
- jquery判断是否按下Enter(回车)和TAB键
- 如何打造抖音爆款内容,从而快速热门涨粉丨国仁网络
- umi build打包之后部署报错
- 白鹭引擎(Egret Engine )
- 关机程序源代码——千万不要点运行!!!hahaha
- 电商数据监测全过程——采集、清洗、分析
热门文章
- 电子商务的安全机制及商务模式
- MySQL学习笔记——显示数据库信息
- 将某字符串切割成阵列并排序列出
- xstream,节点属性起别名时这样的问题你遇到过吗
- case when then else end
- java难学还是pythonnanxue_关于python:为什么numpy中的“ NaN”比“ -np.inf”更小?
- 百度网盘php文件怎么打开,如何通过网页版百度网盘下载大文件
- js中当等于最小值是让代码不执行_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理...
- mysql_real_connect阻塞_mysql_real_connect崩溃、未经处理的异常
- java按钮随机移动_java – 使按钮移动触摸我们触摸的确切位置