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数据结构之二叉树的遍历实例
Apr 29 Python
使用Python生成随机密码的示例分享
Feb 18 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
python http接口自动化脚本详解
Jan 02 Python
在CMD命令行中运行python脚本的方法
May 12 Python
python2.x实现人民币转大写人民币
Jun 20 Python
Python中如何导入类示例详解
Apr 17 Python
django 信号调度机制详解
Jul 19 Python
python中append实例用法总结
Jul 30 Python
python中的列表与元组的使用
Aug 08 Python
python爬虫增加访问量的方法
Aug 22 Python
Python学习之os模块及用法
Jun 03 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
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
python处理图片之PIL模块简单使用方法
2015/05/11 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
django 外键创建注意事项说明
2020/05/20 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
python搜索算法原理及实例讲解
2020/11/18 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
运动会表扬稿大全
2014/01/16 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
python 命令行传参方法总结
2021/05/25 Python
Pygame如何使用精灵和碰撞检测
2021/11/17 Python