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接收Gmail新邮件并发送到gtalk的方法
Mar 10 Python
Python实现翻转数组功能示例
Jan 12 Python
TensorFlow实现卷积神经网络CNN
Mar 09 Python
对numpy中轴与维度的理解
Apr 18 Python
Python if语句知识点用法总结
Jun 10 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
python使用response.read()接收json数据的实例
Dec 19 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 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 设计模式之观察者模式介绍
2012/02/22 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
js 取消页面可以选中文字的功能方法
2018/01/02 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
javascript实现一款好看的秒表计时器
2020/09/05 Javascript
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
python实现简易版计算器
2020/06/22 Python
python中的for循环
2018/09/28 Python
python实现电子词典
2020/03/03 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
团委竞选演讲稿
2014/04/24 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
绿色出行口号
2014/06/18 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
2014年班组工作总结
2014/11/20 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
九年级英语教学反思
2016/02/15 职场文书
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL