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读写文件方法总结
Jun 09 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
启动Atom并运行python文件的步骤
Nov 09 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
详解pandas数据合并与重塑(pd.concat篇)
Jul 09 Python
PyTorch预训练的实现
Sep 18 Python
详谈tensorflow gfile文件的用法
Feb 05 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 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
全国中波电台频率表
2020/03/11 无线电
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
JS中数据结构之栈
2019/01/01 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python文件操作基本流程代码实例
2017/12/11 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
Python中函数参数匹配模型详解
2019/06/09 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
食品安全承诺书范文
2014/08/29 职场文书
先进事迹材料范文
2014/12/29 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
银行求职信范文
2019/05/13 职场文书