Linux运维进阶-Python,Docker,Shell

ini配置文件以及利用python管理ini文件

2021-03-01  本文已影响0人  My熊猫眼

ini文件一般用作配置文件,其格式一般如下:

[section name]
key1 = value1
key2 = vaule2
...

在python里面有一个叫做configparser的module,可以用来操作ini文件,从而方便进行配置文件的管理工作.

创建一个ini配置文件的伪代码如下:

#创建一个configparser对象实例: 
config=configparser.ConfigParser()  
#进行赋值操作:
config[section_name1]={key1:value1,key2:value2}      #第一种赋值方法

config[section_name2]={}     
config[section_name2][key2]=value2     #第二种赋值方法

config[section_name3]={} 
section=config[section_name3]    
section[key3]=value3      #这是第三种赋值方法. 

#赋值完成以后,就可以调用 config 对象的write方法,从而生成对应的ini配置文件了: 
with open("cfg.ini", "w") as fp_cfg:
   config.write(fp_cfg)  

上面伪代码生成的配置文件如下:

[section_name1]
key1 = value1
key2 = value2

[section_name2]
key2 = value2

[section_name3]
key3 = value3

读一个ini配置文件:

和写操作刚好相反,读的时候首先需要进行调用 configparser对象的read方法,然后才能对这个对象进行操作,因为默认创建的对象都是空的. 所以常用的方法如下:

#首先创建一个configparser对象: 
cfgobj=configparser.ConfigParser()
#调用cfg object的read方法: 
cfgobj.read("cfg.ini")  #其中cfg.ini 就是ini配置文件的名称. 注意read 和write 方法需要引入的参数是不同的. 

cfgobj.sections()  # 读取ini配置文件中的所有section的名字. 
print(cfgobj["section_name1"]["key1"])  #根据section以及key的名称读取对应的value的值
for k in cfgobj["section_name1"].keys():       #因为cfgobj["section_name1] 输出的类型是一个字典,所以可以用字典循环方式进行取值
  print(k)

对ini配置文件中的section 以及option 存在性进行判断:

除了创建和读取一个ini配置文件,通常情况下,为了避免读取时候发生错误,也需要进行判断,有几个比较常用的两个方法可以帮助判断:
cfgobj.has_section("section_name")
cfgobj.has_option("section_name","option_name")

上一篇下一篇

猜你喜欢

热点阅读