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库urllib与urllib2主要区别分析
Jul 13 Python
python友情链接检查方法
Jul 08 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
python虚拟环境virtualenv的安装与使用
Sep 21 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
Python温度转换实例分析
Jan 17 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
解决tensorflow 释放图,删除变量问题
Jun 23 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
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
js获取视频时长代码
2014/04/10 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
Python unittest模块用法实例分析
2018/05/25 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
用python爬取租房网站信息的代码
2018/12/14 Python
详解Python3注释知识点
2019/02/19 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
如何基于python操作excel并获取内容
2019/12/24 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
优秀毕业大学生推荐信
2013/11/13 职场文书
策划助理岗位职责
2013/11/18 职场文书
优秀员工自荐书范文
2013/12/08 职场文书
民间个人借款协议书
2014/09/30 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
Python必备技巧之字符数据操作详解
2022/03/23 Python
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python