python操作ini配置文件【 configparser内置模块 】
ini文件是Initialization File的缩写,平时用于存储软件的配置文件:例如:MySql配置文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=py-mysql-bin
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
[client]
default-character-set=utf8
-
读文件
import configparser config=configparser.ConfigParser() config.read('file/my.ini',encoding='utf-8')
-
获取所有节点
result=config.sections() print(result) #['mysqld', 'mysqld_safe', 'client']
-
获取某个节点下的键值
#获取mysqld节点下的键值 result1=config.items('mysqld') print(result1) #一个键值是一个元组 #[('datadir', '/var/lib/mysql'), ('socket', '/var/lib/mysql/mysql.sock'), ('log-bin', 'py-mysql-bin'), ('character-set-server', 'utf8'), ('collation-server', 'utf8_general_ci'), ('log-error', '/var/log/mysqld.log'), ('symbolic-links', '0')]
-
循环节点下的键值
#循环mysqld节点下的键值 for key,value in config.items('mysqld'): print(key,value)
-
获取某个节点下的键对应的值
#获取某个(mysqld)节点下的键(collation-server)对应的值 value=config.get('mysqld','collation-server') print(value)
-
是否存在节点
v1=config.has_section('client') print(v1)
-
添加节点
#值添加到内存里了,没有添加到文件里 config.add_section('group') #添加后写进文件 #config.write(文件对象) config.write(open('file/my.ini',mode='w',encoding='utf-8'))
-
添加键值(节点中设置键值)
#保存添加后的内容 config.set('group','name','wxy') config.write(open('file/my.ini',mode='w',encoding='utf-8'))
-
内容写入新文件(保存文件/保存一个新文件,修改的内容在缓冲区,没有实际修改文件内容)
#保存文件/保存一个新文件,修改的内容在缓冲区,没有实际修改文件内容 config.write(open('file/my.ini',mode='w',encoding='utf-8'))
-
删除节点
#删除节点 config.remove_section('client') #保存删除后的内容 config.write(open('file/my.ini',mode='w',encoding='utf-8'))
-
删除键值
#删除键值mysqld下的datadir config.remove_option('mysqld','datadir') #保存删除后的内容 config.write(open('file/my.ini',mode='w',encoding='utf-8'))