python模块之configparser详解编程语言

今天我们来学习一下configparser这个模块,这个模块主要用来操作配置文件的,我们下面先简单的看下这个模块的用法

一、增加内容

import configparser 
config = configparser.ConfigParser() 
 
 
config["DEFAULT"] = {"servername":"hci", 
                      "ip_address":"127.0.0.1", 
                      "port":"3260", 
                     "address":"sangfor"} 
 
config["vmware"] = {"servername":"vmware", 
                      "ip_address":"127.0.0.2", 
                      "port":"3261", 
                    "address":"usa"} 
 
config["nutanix"] = {"servername":"nutanix", 
                      "ip_address":"127.0.0.3", 
                      "port":"3262"} 
 
 
 
config.write(open("config.ini","w")) 

  

然后我们查看下配置中的内容,是不是很整洁漂亮

python模块之configparser详解编程语言

这里的“DEFAULT”、“vmware”、”nutanix“都是section,而section中的每一项,比如servername为option

2、如果我们想对配置文件修改,我们该怎么办呢?

先说下如何增加

config.read("config.ini") 
config["DEFAULT"] = {"address":"sangfor"} 
 
 
config.write(open("config.ini","w")) 

 

得到的效果是,将配置文件中的DEFAULT中的所有的option覆盖,然后替换为代码中的一条,我们可以看下此时的配置文件中的内容

python模块之configparser详解编程语言

所以我们如果要增加一条option,应该是按照下面的方法来增加,代码如下

config["DEFAULT"]["address"] = "sangfor" 
# # 体会下这两种写法的区别 
config["DEFAULT"]["servername"] = "hci" 
config.write(open("config.ini","w")) 

  

最终得到的配置文件的内容如下

python模块之configparser详解编程语言

同时也可以对某一个option的值进行更改

config.read("config.ini") 
config["DEFAULT"]["servername"] = "SDDC" 
config.write(open("config.ini","w")) 

  

得到的配置截图如下,可以看到servername的值从hci被修改为sddc

python模块之configparser详解编程语言

 下面我们说下如何查看配置文件

首先查看配置文件的中的section

print(config.sections()) 
config.read("config.ini") 
print(config.sections()) 

  

结果如下,这里默认不会输出DEFAULT的section的,DEFAULT是非常特殊的存在,我们在后面会特别说明

python模块之configparser详解编程语言

查看option,先看下如何查看DEFAULT中的option

config.read("config.ini") 
print(config.defaults()) 

  

结果如下

python模块之configparser详解编程语言

 在看下如何查看其他section的option

config.read("config.ini") 
print(config.options("vmware")) 
#查看vmware的section的option的key值 
 
 
print(config.items("vmware")) 
 
#查看vmware的section的option的key和value值 
# 
print(config["nutanix"]["servername"]) 
 
#查看nutanix的servername的value的值 

 

输出结果如下

python模块之configparser详解编程语言

 3、在来看下如何删除

先看如何删除section

config.read("config.ini") 
config.remove_section("nutanix") 
config.write(open("config.ini","w")) 

  

看下配置文件的截图,我们可以看到nutanix的section已经被删除

python模块之configparser详解编程语言

然后看下如何删除option

config.read("config.ini") 
config.remove_option("vmware","address") 
config.write(open("config.ini","w")) 

  

在看配置文件的截图,可以看到vmware的address已经被删除

python模块之configparser详解编程语言

4、我们可以判断配置文件中是否有某个section、后者某个section中是否有某个option

先看下如何判断配置文件中是否有某个section

print(config.has_section("nutanix")) 
print(config.has_section("vmware")) 

  

输出结果如下

python模块之configparser详解编程语言

在看下如何判断某个section是否有指定的option

config.read("config.ini") 
print(config.has_option("vmware","port")) 
print(config.has_option("vmware","aaa")) 
print(config.has_option("vmware","address")) 

  

结果如下

python模块之configparser详解编程语言

 我们来看下配置文件中的内容,这里我们需要简单的解释一下,我们可以看到vmware中有port,这里显示为true,没有问题;我们看到vmware没有aaa,这里为false,没有问题;但是我们看到vmware中并没有address,为什么这里显示为true呢?其实这里就是DEFAULT这个section起作用了,如果在非DFAULT中没有某一项,而该项在DEFAULT中有,则默认会用DEFAULT中的option。

python模块之configparser详解编程语言

5、还有2个方法,可以更改配置文件,我们在来看下

首先可以增加secton、为某个section添加option、修改某个option的值

config.read("config.ini") 
config.add_section("nutanix") 
config.write(open("config.ini","w")) 
 
 
config.set("nutanix","servername","nutanix") 
config.write(open("config.ini","w")) 
 
config.set("vmware","port","8000") 
config.write(open("config.ini","w")) 

  

执行的结果如下

python模块之configparser详解编程语言

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20852.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论