zoukankan      html  css  js  c++  java
  • python 配置文件

    众所周知,在我们开发过程当中应用配置文件对于我们来说觉得是一个方便的选择。当我们遇到不需要经常修改且数据量较少的时候,选择配置文件可以方便的应用于程序,而不必修改源码。

    那么我就来简单介绍一下 python 常用配置文件的格式都有哪些。

    ini 格式

    我们先创建一个叫 db_config.ini 的文件,内容如下:

     1 db_config.ini  
     2 
     3 [baseconf]  
     4 host=127.0.0.1  
     5 port=3306  
     6 user=root  
     7 password=root  
     8 db_name=evaluting_sys  
     9 
    10 [concurrent]  
    11 processor=20 

    函数方式读、写 ini 文件:

     1 import ConfigParser
     2 
     3 config = ConfigParser.ConfigParser()
     4 conf_file = open("db_config.ini")
     5 
     6 config.readfp(conf_file)
     7 
     8 print config.get("baseconf","port")
     9 
    10 #-----------------------------------------------------------------------
    11 
    12 config.set("baseconf","port","11223")
    13 
    14 file_write = open("db_config.ini","w")
    15
    16 config.write(file_write)
    17
    18 file_write.close()

    类读、写:

     1 class Config():
     2     def __init__(self, ini_file_path):
     3         """
     4         :param ini_file_path: ini 文件的路径
     5         """
     6         self.config = ConfigParser.ConfigParser()  # 实例化
     7         self.config.readfp(ini_file_path)
     8 
     9     def get_section(self):
    10         """
    11         文件中 [baseconf] 这个就是节点,该方法是获取文件中所有节点,并生成列表
    12         :return: 返回内容-->> ['baseconf', 'concurrent']
    13         """
    14         sections = self.config.sections()
    15         return sections
    16 
    17     def get_option(self, section_name):
    18         """
    19         文件中 host,port... 这个就是选项,该方法是获取文件中某个节点中所有的选项,并生成列表
    20         :param section_name: 节点名称
    21         :return: section_name="baseconf" 返回内容-->> ['host', 'port', 'user', 'password', 'db_name']
    22         """
    23         option = self.config.options(section_name)
    24         return option
    25 
    26     def get_items(self, section_name):
    27         """
    28         该方法是获取文件中某个节点中的所有选项及对应的值
    29         :param section_name: 节点名称
    30         :return: section_name="baseconf" 返回内容-->> [('host', '127.0.0.1'), ('port', '11223')........]
    31         """
    32         option_items = self.config.items(section_name)
    33         return option_items
    34 
    35     def get_value(self, section_name, option_name):
    36         """
    37         该方法是获取文件中对应节点中对应选项的值
    38         :param section_name: 节点名称
    39         :param option_name: 选项名称
    40         :return: section_name="baseconf",option_name='host' 返回内容-->> '127.0.0.1'
    41         """
    42         data_msg = self.config.get(section_name, option_name)
    43         return data_msg
    44 
    45     def set_value(self, section_name, option_name, value):
    46         """
    47         设置相关的值
    48         :param section_name: 节点名称
    49         :param option_name: 选项名称
    50         :param value: 选项对应的值
    51         :return:
    52         """
    53         self.config.set(section_name, option_name, value)
    54         # 举例: config.set("baseconf", 'host', 192.168.1.1)
    封装类

    json 格式:

    我们先创建一个 db_config.json 文件

    1 {
    2   "save_path":"/test/",
    3   "size":1073741824
    4 }

    读、写操作

     1 import json
     2 with open("/home/zms/PycharmProjects/any_test/update/save.conf") as r:
     3     # 读取文件
     4     data = json.loads(r.read())
     5 print data["size"]
     6 
     7 data["size"] = 123
     8 with open("/home/zms/PycharmProjects/any_test/update/save.conf","w") as f:
     9     #  写入文件
    10     f.write(json.dumps(data))
  • 相关阅读:
    ansible设置串行的方法
    给k8s集群中的node节点加标签
    Prometheus断电后启动异常 Error on ingesting samples
    配置 containerd 镜像仓库完全攻略
    这款网络排查工具,堪称神器!
    k8s备份工具之velero
    CentOS 7安装megacli
    Atitit .h5文件上传 v3
    php切片处理视频大文件思路
    php切片处理视频大文件功能
  • 原文地址:https://www.cnblogs.com/Missowalker/p/7886173.html
Copyright © 2011-2022 走看看