眾所周知,在我們開發過程當中應用配置文件對於我們來說覺得是一個方便的選擇。當我們遇到不需要經常修改且數據量較少的時候,選擇配置文件可以方便的應用於程式,而不必修改源碼。 那麼我就來簡單介紹一下 python 常用配置文件的格式都有哪些。 ini 格式 我們先創建一個叫 db_config.ini 的 ...
眾所周知,在我們開發過程當中應用配置文件對於我們來說覺得是一個方便的選擇。當我們遇到不需要經常修改且數據量較少的時候,選擇配置文件可以方便的應用於程式,而不必修改源碼。
那麼我就來簡單介紹一下 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))