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获取DLL和EXE文件版本号的方法
Mar 10 Python
详解Python中的文本处理
Apr 11 Python
python魔法方法-属性转换和类的表示详解
Jul 22 Python
Python 通配符删除文件的实例
Apr 24 Python
Python3实现转换Image图片格式
Jun 21 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
python3实现名片管理系统
Nov 29 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
python对象与json相互转换的方法
May 07 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
Python @property及getter setter原理详解
Mar 31 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
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
Display SQL Server Login Mode
2007/06/21 Javascript
javascript document.images实例
2008/05/27 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
javascript代码优化的8点总结
2018/01/29 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
简洁的十分钟Python入门教程
2015/04/03 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
金融专业个人求职信范文
2013/11/28 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
党员承诺践诺书
2014/05/20 职场文书
中秋节慰问信
2015/02/15 职场文书
阿甘正传观后感
2015/06/01 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
田径运动会广播稿
2015/08/19 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS
JavaScript组合继承详解
2021/11/07 Javascript
详解Python中*args和**kwargs的使用
2022/04/07 Python