博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python配置文档模块-configparser模块
阅读量:6080 次
发布时间:2019-06-20

本文共 2548 字,大约阅读时间需要 8 分钟。

configparser模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。
来看一个好多软件的常见文档格式如下:haproxy.conf 内容如下:[DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9ForwardX11 = yes[bitbucket.org]User = hg[topsecret.server.com]Port = 50022ForwardX11 = no

如何用python生成一个这样的文档呢?

导入模块import configparser  #在python2.x  是 ConfigParserconfig = configparser.ConfigParser()     #创建一个配置模块对象,赋值给configconfig["DEFAULT"] = {'ServerAliveInterval': '45',    #创建默认节点配置                     'Compression': 'yes',                     'CompressionLevel': '9'}config['abcd.org'] = {}    #创建第二个节点配置。创建一个空字典config['abcd.org']['User'] = 'hg'    #给abcd.org节点添加信息config['aaa.server.com'] = {}    #创建第三个节点配置,创建一个空字典topsecret = config['aaa.server.com']     #给aaa.org节点添加信息topsecret['Host Port'] = '50022'topsecret['ForwardX11'] = 'no'config['DEFAULT']['ForwardX11'] = 'yes'with open('example.ini', 'w') as configfile:     #将配置信息写入到example.ini文件    config.write(configfile)

把刚刚创建的example.ini文件内容读出来

import configparserconfig = configparser.ConfigParser()print(config.sections())    #打印config对象的节点sections,因为还没有数据,所以打印出来是空的。config.read("example.ini")    #读取example.ini文件print(config.sections())    #打印config对象的sectionsprint("abcd.org" in config)    #判断abcd.org在不在config中,返回True或Falseprint(config["abcd.org"]["user"])    #打印config中abcd.org节点下的user信息print(config["DEFAULT"]["compression"])    #打印config中default节点下compression信息print(config["aaa.server.com"]["forwardx11"])    #打印config中aaa.server.com节点下forwardx11的信息for key in config["DEFAULT"]:     #遍历config中DEFAULT中的key    print(key)    print(config["DEFAULT"][key])

现增删改查

ha.conf文件内容:[section1]k1 = v1k2:v2k3 = 3[section2]k1 = v1导入模块,创建configparser对象import configparserconfig = configparser.ConfigParser()config.read("ha.conf")#读取section = config.sections()print(section)print(config.items())#获取config中section1节点下的k1 的valueprint(config.get("section1","k1"))#获取config中section1节点下的k3 的value ,value必须是int类型,否则报错print(config.getint("section1","k3"))#判断config中的section1节点下k1 选项存在不存在,不存在返回Falseprint(config.has_option("section1","k1"))print(config.has_option("section1","k4"))#删除、修改#删除config中的sectionconfig.remove_section("section2")#修改config中的section1中的option的k1 值config.set("section1","k1","111")#在config中增加节点section3config.add_section("section3")#增加config中section3中option key:k1  value:111config.set("section3","k1","111")#删除config中section1节点下的k2 optionconfig.remove_option("section1","k2")#将config内容重新写入新的文件i.cfg,也可以写回原来的文件ha.conf 原来的内容将会被覆盖。config.write(open("i.cfg","w"))

转载于:https://blog.51cto.com/506554897/2046053

你可能感兴趣的文章
处理excel表的列
查看>>
C#数据采集类
查看>>
quicksort
查看>>
【BZOJ2019】nim
查看>>
四部曲
查看>>
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>
lintcode:next permutation下一个排列
查看>>
一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
查看>>
tomcat指定配置文件路径方法
查看>>
linux下查看各硬件型号
查看>>
epoll的lt和et模式的实验
查看>>
Flux OOM实例
查看>>
07-k8s-dns
查看>>
Android 中 ListView 分页加载数据
查看>>
oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system
查看>>