python-configparser產生ini設定檔,
寫入配置:
建立檔案:configTest.ini
import configparserconfig = configparser.ConfigParser()config['DEFAULT'] = {'ServerAliveInterval': '45', 'Compression': 'yes', 'Compression': 'yes', 'CompressionLevel': '9'}config['bitbucket.org'] = {}config['bitbucket.org']['User'] = 'hg'config['topsecret.server.com'] = {}topsecret = config['topsecret.server.com']topsecret['Port'] = '50022' # mutates the parsertopsecret['ForwardX11'] = 'no' # same hereconfig['DEFAULT']['ForwardX11'] = 'yes'with open('configTest.ini', 'w') as configfile: config.write(configfile)
得到的configTest.ini設定檔如下:
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucket.org]
user = hg
[topsecret.server.com]
port = 50022
forwardx11 = no
讀取檔案:
設定檔中 [DEFAULT]是預設配置項,相當於父類,可以再下面的子配置中覆蓋修改,遍曆子配置可得到父類配置內容。
import configparserconfig = configparser.ConfigParser()config.sections()config.read('configTest.ini')config.sections()print('bitbucket.org' in config)print(config['bitbucket.org']['User'])print(config['DEFAULT']['Compression'])topsecret = config['topsecret.server.com']print(topsecret['ForwardX11'])for key in config['topsecret.server.com']: print(key)for key in config['bitbucket.org']: print(config['bitbucket.org'][key])
上面的key迴圈,講得到子類和父類未被覆蓋的key,如:
port
forwardx11
serveraliveinterval
compression
compressionlevel