在python3中使用configparser,configparser模块用于操作配置文件,包含一个或多个结(selection),每个节可以有多个参数(键=值)
config文件的形式
[section1] k1 = v1 k2:v2 [section2] k1 = v1
创建一个config.ini文件
[ssh0] host = 10.100.46.101 port = 22 usr = root pwd = 123456 timeout = 1.0
1. 获取所有的节点
import configparser config = configparser.ConfigParser() config.read('config.ini',encoding='utf-8') ret = config.sections() print(ret)
[root@localhost 0406]# python3 configparser_test.py
['ssh0']
2. 获取指定节点下的所有的键值对
import configparser config = configparser.ConfigParser() config.read('config.ini',encoding='utf-8') ret = config.items('ssh0') print(ret)
[root@localhost 0406]# python3 configparser_test.py
[('host', '10.100.46.101'), ('port', '22'), ('usr', 'root'), ('pwd', '123456'), ('timeout', '1.0')]
3. 获取指定节点下所有的键
import configparser config = configparser.ConfigParser() config.read('config.ini',encoding='utf-8') ret = config.options('ssh0') print(ret)
[root@localhost 0406]# python3 configparser_test.py
['host', 'port', 'usr', 'pwd', 'timeout']
4. 获取指定节点下指定key的值
import configparser config = configparser.ConfigParser() config.read('config.ini',encoding='utf-8') ret1 = config.get('ssh0','host') ret2 = config.getint('ssh0','port') ret3 = config.getfloat('ssh0','timeout') print(ret1,ret2,ret3)
[root@localhost 0406]# python3 configparser_test.py
10.100.46.101 22 1.0
5. 检查,添加,删除节点
import configparser config = configparser.ConfigParser() config.read('config.ini',encoding='utf-8') has_sec = config.has_section('ssh0') print(has_sec) #如果存在则返回true #config.add_section('sec_1') #添加节点 #config.write(open('config.ini','w')) config.remove_section('sec_1') #删除节点 config.write(open('config.ini','w'))
6. 检查,删除,设置指定组内的键值对
import configparser config = configparser.ConfigParser() config.read('config.ini',encoding='utf-8') has_sec = config.has_section('ssh0') print(has_sec) #如果存在则返回true config.remove_option('ssh0','timeout') #移除ssh节点中timeout键值对 config.write(open('config.ini','w')) config.set('ssh0','test','123') #添加一个test=123的键值对 config.write(open('config.ini','w'))