使用ConfigParser模块解析普通文件
来源:互联网 发布:知乎 自动铅笔 推荐 编辑:程序博客网 时间:2024/05/17 05:09
ConfigParser模块是Python中专门用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容:
# build.ini[db]db_host = 127.0.0.1db_port = 22db_user = rootdb_pass = 1234[handle]handle_thread = 10handle_processor = 20常见的处理方法如下:
import ConfigParser as cp### 初始化实例,并读取配置文件cf = cp.ConfigParser()cf.read("build.ini")### 获取所有sectionsst = cf.sections()print 'section:', st### 获取指定sections的optionsop = cf.options("db")print 'options:', op### 获取指定section的配置信息vl = cf.items("db")print 'db_k==v:', vl### 按照类型读取指定section的option信息# get() //-->获取字符串变量# getint() //-->获取整数型变量# getfloat() //-->获取浮点型变量# getboolean() //-->获取布尔型变量db_host = cf.get("db", "db_host")db_port = cf.getint("db", "db_port")db_user = cf.get("db", "db_user")db_pass = cf.get("db", "db_pass")print "db_host:", db_hostprint "db_port:", db_portprint "db_user:", db_userprint "db_pass:", db_pass### 设置某个option的值,用w来保存设置cf.set("db", "db_pass", "4321")cf.write(open("build.ini", "w"))### 添加一个section,用w来保存设置cf.add_section("system")cf.set("system", "system_os", "Linux")cf.set("system", "system_admin", "root")cf.set("system", "system_version", "4.11.12")cf.write(open("build.ini", "w"))### 移除section或者option,用w来保存设置cf.remove_option("system","system_os")cf.remove_section("system")cf.write(open("build.ini", "w"))上面的输出大概如下:
section: ['db', 'handle']options: ['db_host', 'db_port', 'db_user', 'db_pass']db_k==v: [('db_host', '127.0.0.1'), ('db_port', '22'), ('db_user', 'root'), ('db_pass', '4321')]db_host: 127.0.0.1db_port: 22db_user: rootdb_pass: 4321如果配置文件不是上面标准的格式,要如何解析
# 配置文件名:build.inidb_host = 127.0.0.1db_port = 22db_user = rootdb_pass = 4321一般能想到的处理办法:
user = ''port = 0with open(r'build.ini','r') as fd: for line in fd: if line.split('=')[0].strip() == 'db_user': user = line.split('=')[1] if line.split('=')[0].strip() == 'db_port': port = line.split('=')[1]print 'user: %s port: %s' % (user, port)上面的配置文件build.ini不是标准的ini,缺少section,简单处理下,就是自己在脚本中添加个[db],然后再处理!
import ConfigParser as cpimport StringIOcfg = cp.RawConfigParser()cfg.readfp(StringIO.StringIO('[db]\n' + open('build.ini').read()))user = cfg.get('db', 'db_user')port = cfg.get('db', 'db_port')print 'user: ', userprint 'port: ', port经过上面的处理,同样能达到上面的效果,而且代码简洁,输出漂亮,而且更Pythonic
阅读全文
1 0
- 使用ConfigParser模块解析普通文件
- 使用ConfigParser模块解析配置文件
- 【Python】配置文件解析模块ConfigParser使用实例
- 解析配置文件ConfigParser模块
- ConfigParser模块使用
- python模块之ConfigParser:解析配置文件模块
- python中ConfigParser模块使用
- ConfigParser模块学习: 用python解析配置文件
- 嵌入式 python之ConfigParser配置解析模块
- Python模块:配置文件解析器configparser
- Python之配置文件解析模块ConfigParser简介
- Python 解析配置文件 (ConfigParser)模块
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- 七星聚会!我在学堂在线获得的荣誉证书!(截至2017年8月12日)
- Json数据交互(16)
- Nginx集群环境搭建
- Noip 2012 提高组 国王游戏
- 集群间Session共享问题解决方案
- 使用ConfigParser模块解析普通文件
- jdbcType、javaType 、ofType
- JAVA中怎么处理高并发的情况
- MySQL 基础操作表操作(一)
- 渲染和电脑作画
- 智能一代云平台(四十二):关于异常的一些事
- 前端的安全问题?
- 类和对象代码
- java系统高并发解决方案