python读写ini文件示例(python读写文件)


Posted in Python onMarch 25, 2014

很类似java的properties文件

xml文件

db_config.ini
[baseconf]
host=127.0.0.1
port=3306
user=root
password=root
db_name=evaluting_sys
[concurrent]
processor=20

对应的python代码

#!/usr/bin/python
# -*- coding:utf-8 -*-
#author: lingyue.wkl
#desc: use to db ops
#---------------------
#2012-02-18 created
#---------------------
import sys,os
import ConfigParser
class Db_Connector:
  def __init__(self, config_file_path):
    cf = ConfigParser.ConfigParser()
    cf.read(config_file_path)
    s = cf.sections()
    print 'section:', s
    o = cf.options("baseconf")
    print 'options:', o
    v = cf.items("baseconf")
    print 'db:', v
    db_host = cf.get("baseconf", "host")
    db_port = cf.getint("baseconf", "port")
    db_user = cf.get("baseconf", "user")
    db_pwd = cf.get("baseconf", "password")
    print db_host, db_port, db_user, db_pwd
    cf.set("baseconf", "db_pass", "123456")
    cf.write(open("config_file_path", "w"))
if __name__ == "__main__":
  f = Db_Connector("../conf/db_config.ini")

得到结果:

section: ['concurrent', 'baseconf']
options: ['host', 'db_name', 'user', 'password', 'port']
db: [('host', '127.0.0.1'), ('db_name', 'evaluting_sys'), ('user', 'root'), ('password', 'root'), ('port', '3306')]
127.0.0.1 3306 root root

通用模块:支持命令行+import两种形式
ini_op.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
#author: lingyue.wkl
#desc: use to read ini
#---------------------
#2012-02-18 created
#2012-09-02 changed for class support
#---------------------
import sys,os,time
import ConfigParser

class Config:
    def __init__(self, path):
        self.path = path
        self.cf = ConfigParser.ConfigParser()
        self.cf.read(self.path)
    def get(self, field, key):
        result = ""
        try:
            result = self.cf.get(field, key)
        except:
            result = ""
        return result
    def set(self, filed, key, value):
        try:
            self.cf.set(field, key, value)
            cf.write(open(self.path,'w'))
        except:
            return False
        return True
def read_config(config_file_path, field, key): 
    cf = ConfigParser.ConfigParser()
    try:
        cf.read(config_file_path)
        result = cf.get(field, key)
    except:
        sys.exit(1)
    return result
def write_config(config_file_path, field, key, value):
    cf = ConfigParser.ConfigParser()
    try:
        cf.read(config_file_path)
        cf.set(field, key, value)
        cf.write(open(config_file_path,'w'))
    except:
        sys.exit(1)
    return True
if __name__ == "__main__":
   if len(sys.argv) < 4:
      sys.exit(1)
   config_file_path = sys.argv[1] 
   field = sys.argv[2]
   key = sys.argv[3]
   if len(sys.argv) == 4:
      print read_config(config_file_path, field, key)
   else:
      value = sys.argv[4]
      write_config(config_file_path, field, key, value)

第二个示例

import os
import ConfigParser
def main():
    cp = ConfigParser.ConfigParser()    
    cf = open(u"in.ini")
    cp.readfp(cf)
    secs = cp.sections()
    print cp.sections()
    for sec in secs:
        opts = cp.options(sec)
        for opt in opts:
            val = cp.get(sec, opt)
            val += "test....."
            cp.set(sec, opt, val)
    cp.write(open("out.ini", "w"))
if __name__ == '__main__':
    main()
Python 相关文章推荐
Python正则表达式匹配ip地址实例
Oct 09 Python
在Python中处理字符串之isdigit()方法的使用
May 18 Python
星球大战与Python之间的那些事
Jan 07 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
Feb 07 Python
Python统计单词出现的次数
Apr 04 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
Jul 04 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
django处理select下拉表单实例(从model到前端到post到form)
Mar 13 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
python判断windows隐藏文件的方法
Mar 21 #Python
python解析中国天气网的天气数据
Mar 21 #Python
python实现文件名批量替换和内容替换
Mar 20 #Python
Python读写Redis数据库操作示例
Mar 18 #Python
python实现k均值算法示例(k均值聚类算法)
Mar 16 #Python
python实现保存网页到本地示例
Mar 16 #Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 #Python
You might like
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
基于python中theano库的线性回归
2018/08/31 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Python super()方法原理详解
2020/03/31 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
几个常见的软件测试问题
2016/09/07 面试题
优秀党员转正的自我评价
2013/10/06 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
小学运动会报道稿
2014/10/04 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
2014年英语工作总结
2014/12/20 职场文书
社会实践活动总结
2015/02/05 职场文书
python析构函数用法及注意事项
2021/06/22 Python
MySQL系列之六 用户与授权
2021/07/02 MySQL
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL