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中if __name__ == &quot;__main__&quot;详细解释
Oct 21 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
python for 循环获取index索引的方法
Feb 01 Python
PyQt5组件读取参数的实例
Jun 25 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
在Python 的线程中运行协程的方法
Feb 24 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
python 实现Requests发送带cookies的请求
Feb 08 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
桌面中心(四)数据显示
2006/10/09 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
原生js调用json方法总结
2018/02/22 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
详解python中TCP协议中的粘包问题
2019/03/22 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
水果超市创业计划书
2014/01/27 职场文书
会计学专业自荐信
2014/06/25 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
小学新课改心得体会
2016/01/22 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
使用tensorflow 实现反向传播求导
2021/05/26 Python