configparser模块

Posted try-chi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了configparser模块相关的知识,希望对你有一定的参考价值。

configparser模块简介

该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。节与java原先的配置文件相同的格式

看一下configparser生成的配置文件的格式

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
  
[bitbucket.org]
User = Atlan
  
[topsecret.server.com]
Port = 50022
ForwardX11 = no

现在看一下类似上方的配置文件是如何生成的

import configparser #引入模块

config = configparser.ConfigParser()    #类中一个方法 #实例化一个对象

config["DEFAULT"] = {ServerAliveInterval: 45,
                      Compression: yes,
                     CompressionLevel: 9,
                     ForwardX11:yes
                     }    #类似于操作字典的形式

config[bitbucket.org] = {User:Atlan} #类似于操作字典的形式

config[topsecret.server.com] = {Host Port:50022,ForwardX11:no}

with open(example.ini, w) as configfile:

   config.write(configfile)    #将对象写入文件
解释一下,操作方式

config["DEFAULT"] = {ServerAliveInterval: 45,
                      Compression: yes,
                     CompressionLevel: 9,
                     ForwardX11:yes
                     }    #类似于操作字典的形式
#config后面跟的是一个section的名字,section的段的内容的创建类似于创建字典。类似与字典当然还有别的操作方式啦!
config[bitbucket.org] = {User:Atlan}  #类似与最经典的字典操作方式

 

和字典的操作方式相比,configparser模块的操作方式,无非是在实例化的对象后面,跟一个section,在紧跟着设置section的属性(类似字典的形式)

读取文件内容

import configparser

config = configparser.ConfigParser()

#---------------------------查找文件内容,基于字典的形式

print(config.sections())        #  []

config.read(example.ini)

print(config.sections())        #   [‘bitbucket.org‘, ‘topsecret.server.com‘]

print(bytebong.com in config) # False
print(bitbucket.org in config) # True


print(config[bitbucket.org]["user"])  # Atlan

print(config[DEFAULT][Compression]) #yes

print(config[topsecret.server.com][ForwardX11])  #no


print(config[bitbucket.org])          #<Section: bitbucket.org>

for key in config[bitbucket.org]:     # 注意,有default会默认default的键
    print(key)

print(config.options(bitbucket.org))  # 同for循环,找到‘bitbucket.org‘下所有键

print(config.items(bitbucket.org))    #找到‘bitbucket.org‘下所有键值对

print(config.get(bitbucket.org,compression)) # yes       get方法Section下的key对应的value

 

修改文件内容

import configparser

config = configparser.ConfigParser()

config.read(example.ini)  #读文件

config.add_section(yuan)  #添加section

config.remove_section(bitbucket.org) #删除section
config.remove_option(topsecret.server.com,"forwardx11") #删除一个配置想

config.set(topsecret.server.com,k1,11111)
config.set(yuan,k2,22222)
with open(new2.ini,w) as f:
     config.write(f)

 

 
 

以上是关于configparser模块的主要内容,如果未能解决你的问题,请参考以下文章

py15-configparser模块

configparser模块

Python Configparser模块读取写入配置文件

python封装configparser模块获取conf.ini值(优化版)

Python中ConfigParser模块详谈

25.Python序列化模块,hashlib模块, configparser模块,logging模块,异常处理