一、概述
1.1、處理的文件形式
configparse 主要是用來處理類似於windows的 ini文件,這個文件的特點是有多個節(section),每個節下會存儲多個k=v的值
如下配置
[hardware] cpu = 2 [os] os = CentOS os_version = 6.9 kernel_version = 2.6.32 [common] selinux = disabled file_descriptor = 65535 [nginx] version = 1.6.3 install_path = /tuike/server/nginx config_file =['/middleWare/nginx/centralapi.conf','/middleWare/nginx/wezhuanba1.conf']
1.2、相關方法
- config.write() 將配置寫入文件,括號里是文件的句柄
二:實踐
2.1、生成配置文件
import configparser config = configparser.ConfigParser() # 得到一個對象 config["hardware"] = {'cpu':'2'} # 增加一個hardware節,節內的內容使用字典數據格式表示 config["os"] = {'os':'CentOS','os_version':'6.9','kernel_version':'2.6.32'} config['common'] = {'selinux':'disabled', 'file_descriptor':'65535' } config['nginx'] = {'version':'1.6.3', 'install_path':'/tuike/server/nginx', 'config_file':['/middleWare/nginx/centralapi.conf','/middleWare/nginx/wezhuanba1.conf'] } with open('test','w',encoding='utf-8') as f: config.write(f)
2.2、各種操作
import configparser config = configparser.ConfigParser() # 拿到一個配置對象 ############## sections 操作 # 判斷sections是否再配置文件里 print('os' in config) # section in 配置對象 print('wangys' in config) # 查看sections print(config.sections()) # 直接看sections,因為沒有讀取配置文件,所以會返回一個空列表 # [] config.read('test.ini',encoding='utf-8') # 讀取配置文件,注意編碼 print(config.sections()) # 再次打印sections,可以看到有結果 # ['hardware', 'os', 'common', 'nginx'] # 增加一個section config.add_section('wangys') print(config.sections()) # ['hardware', 'os', 'common', 'nginx', 'wangys'] # 刪除一個section config.remove_section('wangys') print(config.sections()) # ['hardware', 'os', 'common', 'nginx'] ##### 操作k/v # 查看某個節里的內容 # 使用 for 循環去key # 判斷某個key是否再selections里 for key in config['os']: print(key) # options查看selctions下配置的key print(config.options('nginx')) # 查看你k v 值 返回一個列表,沒有k/v組成一個元祖 print(config.items('nginx')) # [('version', '1.6.3'), ('install_path', '/tuike/server/nginx'), ('config_file', "['/middleWare/nginx/centralapi.conf', '/middleWare/nginx/wezhuanba1.conf']")] # 獲取某個節下的某個key的value值 print(config.get('os','os_version')) # print(config['os']['os_version','kernel_version']) # 讀取某個sections下的所有的k/v值 l = config.options('nginx') for key in l: print('%s:%s'%(key,config.get('nginx',key))) # 刪除一個sections下的key config.remove_option('os','kernel_version') print(config.options('os')) #['os', 'os_version'] # 增加一個option config.set('os','name','王誠') print(config.options('os')) print(config.get('os','name')) # ['os', 'os_version', 'name'] # 王永勝 with open('test.ini','w',encoding='utf-8') as f: config.write(f)
