博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python读取修改ini配置文件[ConfigParser]
阅读量:7182 次
发布时间:2019-06-29

本文共 2513 字,大约阅读时间需要 8 分钟。

hot3.png

需求

写个项目,用到数据库,多个地方使用,不能硬编码。很类似java的properties文件

Python支持ini文件的读取

ini文件

db_config.ini

[baseconf]host=127.0.0.1port=3306user=rootpassword=rootdb_name=evaluting_sys[concurrent]processor=20

 

示例代码

#!/usr/bin/python# -*- coding:utf-8 -*-#author: lingyue.wkl#desc: use to db ops#---------------------#2012-02-18 created#---------------------import sys,osimport ConfigParserdef test(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__":    test("../conf/db_config.ini")

支持命令行+import两种通用模块init_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,timeimport ConfigParserclass 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 Truedef 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 resultdef 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 Trueif __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)

 

转载于:https://my.oschina.net/u/3346994/blog/1549024

你可能感兴趣的文章
文件名过长/文件夹路径过长 无法删除文件夹之解决办法
查看>>
Js获取当前页面URL的一些属性_已迁移
查看>>
test
查看>>
Android消息通知Totast的实现
查看>>
如何更好的管理企业内的打印机
查看>>
感慨下,什么样的IT
查看>>
SQL server 2005 PIVOT运算符的使用
查看>>
我的友情链接
查看>>
Dubbo源码分析(2),Dubbo中采用的设计模式
查看>>
我的友情链接
查看>>
LVS-DR工作原理图文详解
查看>>
PPT演讲10大准备技巧
查看>>
linux连接数检查
查看>>
水火交融-Windows上的Linux容器
查看>>
Linux调优方案,sysctl.conf的设置
查看>>
dnsmasq 小巧且方便地用于配置DNS和DHCP的工具
查看>>
日期控件
查看>>
有关缓存,缓存算法,缓存框架
查看>>
Redhat6 安装mysql
查看>>
python利用本地保存cookies文件登录调取api
查看>>