# 操作ini格式文件
import configparser
'''ini
[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
'''
# 1.获取所有节点
config = configparser.ConfigParser()
config.read(r'D:\Python\路飞\模块2\day09 文件操作相关\笔记\infor.ini',encoding='utf-8')
result = config.sections()
print(result)
# 2.节点下的键值
result_01 = config.items('mysqld')
print(result_01)
for key,value in config.items('mysqld'):
print(key,value)
# 3.获取某个节点对应下的键对应的值
result_02 = config.get('mysqld','socket')
print(result_02)
# 4.其他功能
# 判断是否存在节点
result_03 = config.has_section('mysqld_safe')
print(result_03)
# 增加节点、键值
config.add_section('Naizhou') # 添加到内存里,还没有增加到文件里
config.set('Naizhou','name','xueyou') # 在相应的节点里增加键值
config.write(open(r'D:\Python\路飞\模块2\day09 文件操作相关\笔记\infor.ini',mode='w',encoding='utf-8')) # 添加到文件里,如果文件路径改了,则意味着创建新的文件
# 删除节点、键值
config.remove_section('Naizhou') # 在内存里删除节点,还没有在文件里删除
config.remove_option('mysqld','log-bin') # 在内存里删除键值,还没有在文件里删除
config.write(open(r'D:\Python\路飞\模块2\day09 文件操作相关\笔记\infor.ini',mode='w',encoding='utf-8')) # 在文件里删除,如果文件路径改了,则意味着创建新的文件