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
這種格式是可以直接使用open來出來,考慮到自己處理比較麻煩,所以Python為我們提供了更為方便的方式。
import configparser config = configparser.ConfigParser() config.read('files/my.ini', encoding='utf-8') # config.read('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/files/my.ini', encoding='utf-8') # 1.獲取所有的節點 """ result = config.sections() print(result) # ['mysqld', 'mysqld_safe', 'client'] """ # 2.獲取節點下的鍵值 """ result = config.items("mysqld_safe") print(result) # [('log-error', '/var/log/mariadb/mariadb.log'), ('pid-file', '/var/run/mariadb/mariadb.pid')] for key, value in config.items("mysqld_safe"): print(key, value) """ # 3.獲取某個節點下的鍵對應的值 """ result = config.get("mysqld","collation-server") print(result) """ # 4.其他 # 4.1 是否存在節點 # v1 = config.has_section("client") # print(v1) # 4.2 添加一個節點 # config.add_section("group") # config.set('group','name','wupeiqi') # config.set('client','name','wupeiqi') # config.write(open('files/new.ini', mode='w', encoding='utf-8')) # 4.3 刪除 # config.remove_section('client') # config.remove_option("mysqld", "datadir") # config.write(open('files/new.ini', mode='w', encoding='utf-8'))
讀取所有節點
import configparser config = configparser.ConfigParser() config.read('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/files/my.conf', encoding='utf-8') # config.read('my.conf', encoding='utf-8') ret = config.sections() print(ret) >>輸出 ['mysqld', 'mysqld_safe', 'client']
讀取節點下的鍵值
import configparser config = configparser.ConfigParser() config.read('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/files/my.conf', encoding='utf-8') # config.read('my.conf', encoding='utf-8') item_list = config.items("mysqld_safe") print(item_list) >>輸出 [('log-error', '/var/log/mariadb/mariadb.log'), ('pid-file', '/var/run/mariadb/mariadb.pid')]
讀取節點下值(根據 節點+鍵 )
import configparser config = configparser.ConfigParser() config.read('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/files/my.conf', encoding='utf-8') value = config.get('mysqld', 'log-bin') print(value) >>輸出 py-mysql-bin
檢查、刪除、添加節點
import configparser config = configparser.ConfigParser() config.read('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/files/my.conf', encoding='utf-8') # config.read('my.conf', encoding='utf-8') # 檢查 has_sec = config.has_section('mysqld') print(has_sec) # 添加節點 config.add_section("SEC_1") # 節點中設置鍵值 config.set('SEC_1', 'k10', "123") config.set('SEC_1', 'name', "哈哈哈哈哈") config.add_section("SEC_2") config.set('SEC_2', 'k10', "123") # 內容寫入新文件 config.write(open('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/files/xxoo.conf', 'w')) # 刪除節點 config.remove_section("SEC_2") # 刪除節點中的鍵值 config.remove_option('SEC_1', 'k10') config.write(open('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/files/new.conf', 'w'))