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基于pygame实现的font游戏字体(附源码)
Nov 11 Python
python实现中文转换url编码的方法
Jun 14 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
python学习基础之循环import及import过程
Apr 22 Python
如何使用Python的Requests包实现模拟登陆
Apr 27 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
详解Python中第三方库Faker
Sep 25 Python
python re.match()用法相关示例
Jan 27 Python
Python实现Telnet自动连接检测密码的示例
Apr 16 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
德生PL330测评
2021/03/02 无线电
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
javascript中 try catch用法
2015/08/16 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
跟老齐学Python之有点简约的元组
2014/09/24 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
对python生成业务报表的实例详解
2019/02/03 Python
python操作文件的参数整理
2019/06/11 Python
python缩进长度是否统一
2020/08/02 Python
汉森批发:Hansen Wholesale
2018/05/24 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
职业生涯规划设计步骤
2014/01/12 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
社区端午节活动方案
2014/01/28 职场文书
大学生军训感想
2014/02/16 职场文书
倡议书格式范文
2014/04/14 职场文书
小学节能减排倡议书
2014/05/15 职场文书
合伙购房协议样本
2014/10/06 职场文书
同意报考公务员证明
2015/06/17 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js