2-1-03 文件操作 - ini 格式文件

使用模块

#ini文件操作
import configparser

1. ini格式文件

ini文件是**Initialization File【初始化文件; 初始化文件格式; 初始设定档案;】的缩写,平时用于存储软件的的配置文件

[mysqld] # []这种的是节点
datadir=/var/lib/mysql #等号两边:键 = 值
# Disabling symbol……    # 开头加上#号的是注释

例如: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

这种格式是可以直接使用open来出来,考虑到自己处理比较麻烦,所以Python为我们提供了更为方便的方式。

1.1 读取所有的节点

import configparser

config = configparser.ConfigParser()  # configparser.ConfigeParser()   固定搭配
config.read('file/my.ini', encoding='utf-8')  # 读取这个my.conf配置文件

# 1.获取所有的节点
result = config.sections()  # config.sections() 获取所有的节点
print(result)  # ['mysqld', 'mysqld_safe', 'client']

1.2 读取节点下的键值

import configparser 
config = configparser.ConfigParser() # configparser.ConfigeParser() 固定搭配 
config.read('file/my.ini', encoding='utf-8') # 读取这个my.conf配置文件

# 2.获取节点下的键值
# 方法1
result = config.items("mysqld_safe")
print(result)  # [('log-error', '/var/log/mariadb/mariadb.log'), ('pid-file', '/var/run/mariadb/mariadb.pid')]

# 方法2
for key, value in config.items("mysqld_safe"):
    print(key, value)

1.3 读取节点下值(根据 节点+键 )

import configparser 
config = configparser.ConfigParser() # configparser.ConfigeParser() 固定搭配 
config.read('file/my.ini', encoding='utf-8') # 读取这个my.conf配置文件

# 3.获取某个节点下的键对应的值
#config.get("节点","节点下的键名")
result = config.get("mysqld", "collation-server")
print(result)   #  utf8_general_ci

1.4 其他

1.4.1 是否存在节点

import configparser 
config = configparser.ConfigParser() # configparser.ConfigeParser() 固定搭配 
config.read('file/my.ini', encoding='utf-8') # 读取这个my.conf配置文件

# 是否存在节点

v1 = config.has_section("client")
print(v1)   #True

1.4.2 添加

import configparser 
config = configparser.ConfigParser() # configparser.ConfigeParser() 固定搭配 
config.read('file/my.ini', encoding='utf-8') # 读取这个my.conf配置文件

# 添加
config.add_section("wuqile")  # 增加节点名
config.set("wuqile","name","ere")  #增加节点中的键和对应的值
config.set('client','name','wupeiqi')
#添加完了还要写入文件中
config.write( open('file/my.ini',mode='w', encoding='utf-8'))

1.4.3 删除

import configparser 
config = configparser.ConfigParser() # configparser.ConfigeParser() 固定搭配 
config.read('file/my.ini', encoding='utf-8') # 读取这个my.conf配置文件

# 删除
config.remove_section('wuqile')  #删除节点后,包括节点下面的值都被删除
config.remove_option("mysqld","datadir")   #删除(某个节点,节点下面的键)
config.write( open('file/my.ini',mode='w', encoding='utf-8'))
posted @ 2022-10-19 09:30  布丁家的苏苏  Views(21)  Comments(0)    收藏  举报