众所周知,在我们开发过程当中应用配置文件对于我们来说觉得是一个方便的选择。当我们遇到不需要经常修改且数据量较少的时候,选择配置文件可以方便的应用于程序,而不必修改源码。
那么我就来简单介绍一下 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()
类读、写:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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))