Python读取ini配置文件

复制代码
db_config.ini  
[baseconf]  
host=127.0.0.1  
port=3306  
user=root  
password=root  
db_name=evaluting_sys  
[concurrent]  
processor=20  
复制代码

python代码

复制代码
 1 对应的python代码
 2 import sys,os  
 3 import ConfigParser  
 4   
 5 class Db_Connector:  
 6   def __init__(self, config_file_path):  
 7     cf = ConfigParser.ConfigParser()  
 8     cf.read(config_file_path)  
 9   
10     s = cf.sections()  
11     print 'section:', s  
12   
13     o = cf.options("baseconf")  
14     print 'options:', o  
15   
16     v = cf.items("baseconf")  
17     print 'db:', v  
18   
19     db_host = cf.get("baseconf", "host")  
20     db_port = cf.getint("baseconf", "port")  
21     db_user = cf.get("baseconf", "user")  
22     db_pwd = cf.get("baseconf", "password")  
23   
24     print db_host, db_port, db_user, db_pwd  
25   
26     cf.set("baseconf", "db_pass", "123456")  
27     cf.write(open("config_file_path", "w"))  
28 if __name__ == "__main__":  
29   f = Db_Connector("../conf/db_config.ini")  
复制代码

通用模块:支持命令行+import两种形式

复制代码
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)  
复制代码

 

posted @   狂师  阅读(3204)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示