configparser模塊用於生成和修改常見配置文檔。vim
預製配置文件:conf.inispa
[DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg MaxUsers = 100 [topsercret.server.com] Port = 50022 ForwardX11 = no
解析配置文件 |
>>> import configparser >>> conf = configparser.ConfigParser() # 準備處理文件 >>> conf.read('conf_ini') ['conf_ini'] >>> print(conf.sections()) ['bitbucket.org', 'topsercret.server.com'] >>> print(conf.default_section) DEFAULT >>> 'bitbucket.org' in conf True >>> conf['bitbucket.org']['User'] 'hg' >>> print(list(conf['bitbucket.org'].keys())) ['user', 'maxusers', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11'] >>> for k in conf['topsercret.server.com']: ... print(k) ... port forwardx11 serveraliveinterval compression compressionlevel
能夠發現,每一個節點都會默認包含default值。code
增刪改查 |
首先準備conf_test.ini文件server
[group1] k1 = v1 k2:v2 [group2] k1=v1
對conf_test_ini文件進行讀和添加操做:blog
>>> import shutil >>> shutil.copyfile('conf_ini', 'conf_test.ini') 'conf_test.ini' # vim conf_test.ini 修改配置文件信息 >>> import ConfigParser Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'ConfigParser' >>> import configparser >>> conf = configparser.ConfigParser() >>> conf.read('conf_test.ini') ['conf_test.ini'] print(dir(conf)) ['BOOLEAN_STATES', 'NONSPACECRE', 'OPTCRE', 'OPTCRE_NV', 'SECTCRE', '_DEFAULT_INTERPOLATION',...'set', 'setdefault', 'update', 'values', 'write'] >>> print(conf.options('group1')) ['k1', 'k2'] >>> print(conf['group1']['k2']) v2 >>> conf.add_section('group3') >>> conf['group3']['name'] = 'hqs' >>> conf['group3']['age'] = '22' # 不能使用數字 >>> conf.write(open('conf_test.ini', 'w')) # 寫入新文件
[group1] k1 = v1 k2 = v2 [group2] k1 = v1 [group3] name = hqs age = 22
對conf_test_ini文件進行刪操做rem
>>> import configparser >>> conf = configparser.ConfigParser() >>> conf.read('conf_test.ini') ['conf_test.ini'] >>> conf.remove_option('group1', 'k2') # 刪除某一項 True >>> conf.write(open('conf_test.ini', 'w')) [group1] k1 = v1 [group2] k1 = v1 [group3] name = hqs age = 22
>>> import configparser >>> conf = configparser.ConfigParser() >>> conf.read('conf_test.ini') ['conf_test.ini'] >>> conf.remove_section('group3') # 刪除某一整個章節 True >>> conf.write(open('conf_test.ini', 'w')) >>> ^D MacBook-Pro:Desktop hqs$ cat conf_test.ini [group1] k1 = v1 [group2] k1 = v1