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中readline判断文件读取结束的方法
Nov 08 Python
Python写的服务监控程序实例
Jan 31 Python
python getopt详解及简单实例
Dec 30 Python
Python表示矩阵的方法分析
May 26 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 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代码
2006/12/06 PHP
简单采集了yahoo的一些数据
2007/02/14 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
微信支付开发交易通知实例
2016/07/12 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
python从入门到精通(DAY 3)
2015/12/20 Python
Python微信公众号开发平台
2018/01/25 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
自荐信范文
2013/12/10 职场文书
军校大学生个人的自我评价
2014/02/17 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
2015年防汛工作总结
2015/05/15 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
Python图片检索之以图搜图
2021/05/31 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
python双向链表实例详解
2022/05/25 Python