python 提供INI配置文件的操作 ConfigParser
原文地址:http://www.cnblogs.com/pumaboyd/archive/2008/08/11/1265416.html
红色的为标注信息
+++++++++++++++++引用+++++++++++++++++++++
>PY提供INI配置文件的操作
关于配置文件,很直观的感觉就是XML文件。对于XML文件的使用大家还是很喜欢的。但有时候只是简单的一个程序,实现一个简单的name:value关系。用XML文件就没这个必要。这种要求很符合MS的INI文件格式。所以这里主要介绍一下对INI文件的操作方式,而且最近写的第一个PY应用程序也是使用了INI
什么是INI 文件
PY所支持的INI文件还是和Windows系统所定义有不同,它不但支持name=value的形式,还支持name:value的形式
>PY对INI配置文件读取提供的类支持
PY的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser
RawCnfigParser是最基础的INI文件读取类
ConfigParser、SafeConfigParser支持对$(value)s变量的支持。
>RawConfigParser类的使用方法 (建议使用)
int文件
[weburl]
urlname=http://pumaboyd.cnblogs.com
Test.py文件
import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.RawConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
print cfg.get("weburl","urlname")
可以查看一下help(cfg.readfp)
readfp是读取一个 file object 类似于 something.readlines() 的对象。
使用with用法,将会节省很多内存,这里比较赞同。
>ConfigParser类的使用方法
Configration类是从RawConfigParser扩展过来的,可以支持$()s变量。
对RawConfigParserd的get(),items()进行了扩展
int文件
[DEFAULT]
val=pumaboyd
[weburl]
name=%(val)s
Test.py文件
import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.ConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
print cfg.defaults()
print cfg.get("weburl","name")
可以看到cfg.get("weburl","name") 输入的pumaboyd。如果这里采用的是RawConfigParser,你将看到输出的是%(val)s。
这里需要注意的一个地方就是DEFAULT这个默认节点。只能通过cfg.defaults()读取到。cfg.sections()是不包含DEFAULT这个节点的。
>SafeConfigParser类的使用方法
是从ConfigParser继承过来,其实是对RawConfigParser进行了扩展,可以支持$()s变量
int文件
[DEFAULT]
val=pumaboyd
[weburl]
name=abcd
Test.py文件
import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.SaftConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
cfg.set("weburl","name","&(val)s")
print cfg.get("weburl","name")
你将看到输入结果是pumaboyd。如果采用的RawConfigParser,你就看到输出的是%()s
>如何修改INI文件
RawConfigParser、SafeConfigParser、ConfigParser中的SET、Remove等方法都只是对ConfigParser对象的修改,并没有真正的保存到INI文件中。所以,需要通过Write方法(3个类中都有这个方法),将修改写回INI文件中。
ini文件
[weburl]
name=abcd
Test.py文件
import ConfigParser, os
from __future__ import with_statement
cfg = ConfigParser.ConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
cfg.set("weburl","name","pumaboyd") with open("app.ini","w") as fwobj
cfg.write(fwobj)
--=阅读快乐=--
欢迎访问我的新鱼塘 www.pumaboyd.com
++++++++++++++++引用结束++++++++++++++++++++
另外的一个引用。这个引用比较初级。结合tornado 的 options 来看,简单的ConfigParser 并没有将配置文件中的内容对象话,所以还需要进一步的续写。
|
在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介绍。
ConfigParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项,比如: [db] 假设上面的配置文件的名字为test.conf。里面包含两个section,一个是db, 另一个是concurrent, db里面还包含有4项,concurrent里面有两项。这里来做做解析: ![]() #-*- encoding: gb2312 -*- ![]() |
python 提供INI配置文件的操作 ConfigParser的更多相关文章
- Python读取ini配置文件(接口自动测试必备)
前言 大家应该接触过.ini格式的配置文件.配置文件就是把一些配置相关信息提取出去来进行单独管理,如果以后有变动只需改配置文件,无需修改代码. 特别是后续做自动化的测试,代码和数据分享,进行管理.比如 ...
- python读取ini配置文件的示例代码(仅供参考)
这篇文章主要介绍了python读取ini配置文件过程示范,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装 pip install configp ...
- Python之ini配置文件详解
INI介绍 INI是英文"初始化"(initialization)的缩写,被用来对操作系统或特定程序初始化或进行参数设置.由节(section). 键(key).值(value)构 ...
- Python模块:配置文件解析器configparser
版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主同意不得转载. https://blog.csdn.net/pipisorry/article/d ...
- Python读取ini配置文件的方式
python configparser模块 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...
- Python读取ini配置文件
db_config.ini [baseconf] host=127.0.0.1 port=3306 user=root password=root db_name=evaluting_sys [con ...
- python读取 ini 配置文件
在详解python读取ini文件之前,我们先说明一个ini文件的组成: 一个ini文件是由多个section组成,每个section中以key=vlaue形式存储数据: 然后我们来使用python读取 ...
- .net读取ini配置文件的操作
#region 读取和写入ini文件的操作 string inipath = System.Windows.Forms.Application.StartupPath + @"\conf ...
- Python读取ini配置文件封装方法
读取配置文件 ----rw_ini.py from configparser import ConfigParser def read_config(config_file_path:str): &q ...
随机推荐
- hdu 5053 the Sum of Cube(上海网络赛)
the Sum of Cube Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Vim实用小技巧
Vim实用小技巧 一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为 ...
- 七牛云存储C#例用小例子 C#笔记
最近有需求要把网站的图片传到云存储上去.于是就找到了七牛.看上面的SDK...看了才发现里面注释很少.当时看的头大.在网上搜一下,基本上没有好的例子.给初学者带来很大的不便!不过最后还是做出来了.在这 ...
- nginx的五种负载算法模式
nginx 负载均衡5种配置方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,weight和访问比率成正比 ...
- 前端构建利器Grunt—Bower
runt + Bower—前端构建利器 目前比较流行的WEB开发的趋势是前后端分离.前端采用重量级的Javascript框架,比如Angular,Ember等,后端采用restful API的Web ...
- intellij idea 13&14 插件推荐及快速上手建议 (已更新!)
原文:intellij idea 13&14 插件推荐及快速上手建议 (已更新!) 早些年 在外企的时候,公司用的是intellij idea ,当时也是从eclipse.MyEclipse转 ...
- 浅析 JavaScript 中的 函数 currying 柯里化
原文:浅析 JavaScript 中的 函数 currying 柯里化 何为Curry化/柯里化? curry化来源与数学家 Haskell Curry的名字 (编程语言 Haskell也是以他的名字 ...
- Windows Azure VM两shut down 道路
今天调查Azure当价格,找到下面的语句,来自http://azure.microsoft.com/en-us/pricing/details/virtual-machines/ * If my de ...
- [Node.js框架] 为什么要开发 Codekart 框架
两年前,在被php的$符号和字符串处理折磨得半夜骂娘之后,我义无反顾地决定:珍爱生命,远离php. 之后一直在寻找一门“完美的语言”,先后接触了Lisp.python.java.Ruby.Lisp几乎 ...
- C#用Open与Add方法打开word文档的区别
C#打开word文档常用有两种方法:Add与Open. Microsoft.Office.Interop.Word._Document doc = (Document)appWord.Document ...
