python ConfigParser模塊

ConfigParser模塊可以處理像Mysql配置文件格式的數據

以下爲mysql的初始配置文件內容:

[root@localhost ~]# cat /etc/my.cnf 

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid


接下來使用ConfigParser模塊來生成這樣格式的文件:

#!/usr/local/python3/bin/python3

import configparser

config = configparser.ConfigParser()

config["mysqld"] = {"datadir":"/var/lib/mysql",

                    "socket":"/var/lib/mysql/mysql.sock",

                    "user":"mysql",

                    "symbolic":"0"}


config["mysql_safe"] = {"log-error":"/var/log/mysqld.log",

                        "pid-file":"/var/run/mysqld/mysqld.pid"

                       }

with open("my.cnf","w") as f:

  config.write(f)

執行腳本,就能在本地生成一個和my.cnf一樣的文件。 


說完了寫,那我們看看如何讀取

>>> import configparser

>>> config = configparser.ConfigParser()


>>> config.read("my.cnf")         //相當於加載文件

['my.cnf']


>>> config.sections()           //查看文件中所有的key,格式像[mysqld]、[mysql_safe]這種的

['mysqld', 'mysql_safe']


>>> config["mysqld"]["datadir"]    //獲取值

'/var/lib/mysql'


>>> "mysqld" in config          //判斷某key是否在文件中

True


>>> for i in config["mysqld"]:    //循環打印key下的所有值

...   print(i)

... 

datadir

socket

user

symbolic


說完了讀,那我們看看進行修改

>>> import configparser

>>> config = configparser.ConfigParser()

>>> config.read("my.cnf")

['my.cnf']


########讀取##########

>>> secs = config.sections()

>>> print(secs)

['mysqld', 'mysql_safe']


>>> options = config.options("mysqld")        //打印"mysqld下的所有鍵"

>>> print(options)

['datadir', 'socket', 'user', 'symbolic']


>>> item_list = config.items("mysqld")       //打印"mysqld"下的所有值

>>> print(item_list)

[('datadir', '/var/lib/mysql'), ('socket', '/var/lib/mysql/mysql.sock'), ('user', 'mysql'), ('symbolic', '0')]


>>> val = config.get("mysqld","datadir")    //打印某個鍵的值

>>> print(val)

/var/lib/mysql


>>> val = config.getint("mysqld","symbolic")

>>> print(val)

0


######修改######

>>> sec = config.remove_section("mysqld")      //相當於把"mysqld"字段下的所有全刪除了

>>> config.write(open("my.cnf","w"))


>>> sec = config.add_section("mysqld")       //在文件的末尾添加了一個字段[mysqld]

>>> config.write(open("my.cnf","w"))


>>> config.set("mysqld","User","root")      //在[mysqld]字段下添加了user=root

>>> config.write(open("my.cnf","w"))


>>> config.remove_option("mysqld","user")     //把[mysqld]字段下的user=root刪除

True

>>> config.write(open("my.cnf","w"))





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章