configparser模塊——配置文檔

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
相關文章
相關標籤/搜索