一、概述

1.1、处理的文件形式

configparse 主要是用来处理类似于windows的 ini文件,这个文件的特点是有多个节(section),每个节下会存储多个k=v的值

如下配置

[hardware]
cpu = 2
[os]
os = CentOS
os_version = 6.9
kernel_version = 2.6.32
[common]
selinux = disabled
file_descriptor = 65535
[nginx]
version = 1.6.3
install_path = /tuike/server/nginx
config_file =['/middleWare/nginx/centralapi.conf','/middleWare/nginx/wezhuanba1.conf']

1.2、相关方法

  • config.write()   将配置写入文件,括号里是文件的句柄

二:实践

2.1、生成配置文件

import  configparser
config = configparser.ConfigParser() # 得到一个对象
config["hardware"] = {'cpu':''} # 增加一个hardware节,节内的内容使用字典数据格式表示
config["os"] = {'os':'CentOS','os_version':'6.9','kernel_version':'2.6.32'}
config['common'] = {'selinux':'disabled',
'file_descriptor':''
}
config['nginx'] = {'version':'1.6.3',
'install_path':'/tuike/server/nginx',
'config_file':['/middleWare/nginx/centralapi.conf','/middleWare/nginx/wezhuanba1.conf']
}
with open('test','w',encoding='utf-8') as f:
config.write(f)

2.2、各种操作

import configparser
config = configparser.ConfigParser() # 拿到一个配置对象 ############## sections 操作
# 判断sections是否再配置文件里
print('os' in config) # section in 配置对象
print('wangys' in config) # 查看sections
print(config.sections()) # 直接看sections,因为没有读取配置文件,所以会返回一个空列表
# []
config.read('test.ini',encoding='utf-8') # 读取配置文件,注意编码
print(config.sections()) # 再次打印sections,可以看到有结果
# ['hardware', 'os', 'common', 'nginx'] # 增加一个section
config.add_section('wangys')
print(config.sections())
# ['hardware', 'os', 'common', 'nginx', 'wangys'] # 删除一个section
config.remove_section('wangys')
print(config.sections())
# ['hardware', 'os', 'common', 'nginx'] ##### 操作k/v
# 查看某个节里的内容
# 使用 for 循环去key
# 判断某个key是否再selections里 for key in config['os']:
print(key) # options查看selctions下配置的key
print(config.options('nginx')) # 查看你k v 值 返回一个列表,没有k/v组成一个元祖
print(config.items('nginx'))
# [('version', '1.6.3'), ('install_path', '/tuike/server/nginx'), ('config_file', "['/middleWare/nginx/centralapi.conf', '/middleWare/nginx/wezhuanba1.conf']")]
# 获取某个节下的某个key的value值
print(config.get('os','os_version'))
# print(config['os']['os_version','kernel_version']) # 读取某个sections下的所有的k/v值
l = config.options('nginx')
for key in l:
print('%s:%s'%(key,config.get('nginx',key))) # 删除一个sections下的key config.remove_option('os','kernel_version')
print(config.options('os'))
#['os', 'os_version'] # 增加一个option
config.set('os','name','王诚')
print(config.options('os'))
print(config.get('os','name'))
# ['os', 'os_version', 'name']
# 王永胜 with open('test.ini','w',encoding='utf-8') as f:
config.write(f)

Python内置模块之configparse的更多相关文章

  1. Python学习笔记【第八篇】:Python内置模块

    什么时模块 Python中的模块其实就是XXX.py 文件 模块分类 Python内置模块(标准库) 自定义模块 第三方模块 使用方法 import 模块名 form 模块名 import 方法名 说 ...

  2. python内置模块(4)

    这一部分是python内置模块系列的最后一部分,介绍了一些小巧有用的内置模块. 目录: 1.random 2.shelve 3.getpass 4.zipfile 5.tarfile 6.bisect ...

  3. Python内置模块与标准库

    Python内置模块就是标准库(模块)吗?或者说Python的自带string模块是内置模块吗? 答案是:string不是内置模块,它是标准库.也就是说Python内置模块和标准库并不是同一种东西. ...

  4. python内置模块[re]

    python内置模块[re] re模块: python的re模块(Regular Expression正则表达式)提供各种正则表达式的匹配操作,在文本解析.复杂字符串分析和信息提取时是一个非常有用的工 ...

  5. python内置模块[sys,os,os.path,stat]

    python内置模块[sys,os,os.path,stat] 内置模块是python自带功能,在使用内置模块时,需要遵循 先导入在 使用 一.sys 对象 描述 sys.argv 命令行参数获取,返 ...

  6. Python内置模块和第三方模块

    1.Python内置模块和第三方模块 内置模块: Python中,安装好了Python后,本身就带有的库,就叫做Python的内置的库. 内置模块,也被称为Python的标准库. Python 2.x ...

  7. python内置模块collections介绍

    目录 python内置模块collections介绍 1.namedtuple 2.deque 3.defaultdict 4.OrderedDict 5.ChainMap 6.Counter 7.小 ...

  8. python内置模块介绍(一)

     本文主要介绍模块列表如下: os sys re time datetime random shutil subprocess os模块 os.getcwd()                    ...

  9. python内置模块(time模块)

    常用的python内置模块 一.time模块 在python的三种时间表现形式: 1.时间戳,给电脑看的. - 自1970-01-01 00:00:00到当前时间,按秒计算,计算了多少秒. impor ...

随机推荐

  1. JS生成 UUID的方法

    方法一. function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0; i & ...

  2. kettle集群(转换)

    1.定义子服务器 新建子服务器中有一个必须为主服务器 新建集群 在需求集群运行的步骤中右键集群进行使用

  3. BZOJ3626[LNOI2014]LCA——树链剖分+线段树

    题目描述 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1.设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先.有q次询问,每次询 ...

  4. Android学习第十天

    计算机表示图形的几种方式 a)         Bmp:以高质量保存,用于计算机 b)         Jpg:以良好的质量保存,用于计算机或网络 c)         Png:以高质量保存 d)   ...

  5. Django ORM 操作2 增删改

    增删改 增加 表对象直接增加方式 Frank_obj = models.Student(name ="海东",course="python",birth=&qu ...

  6. python 高阶函数之 reduce

    1.正常写法 >>> from functools import reduce >>> def fn(x, y): ... return x * 10 + y .. ...

  7. Linux(Ubuntu)换apt-get源

    在虚拟机安装完Ubuntu后,因为apt-get命令默认的服务器在国外会很慢,换成国内的会快很多 选一个国内镜像源,以清华大学开源镜像为例,要选对应的Ubuntu版本 网站链接https://mirr ...

  8. CSS伪类整理笔记

    0 伪元素 虚拟的一个元素,用于向已有的元素添加特殊效果,可用标签元素实现该效果. css3中规定:伪元素的由两个冒号::开头,然后是伪元素的名称.用两个冒号::是为了区别伪类和伪元素(CSS2中并没 ...

  9. go Test的实现 以及 压力测试

    引用 import "testing" 一些原则 文件名必须是 *_test.go* 结尾的,这样在执行 go test 的时候才会执行到相应的代码 必须 import testi ...

  10. LVM备份(1)-创建LVM逻辑卷

    LV(Logical Volume) - 逻辑卷 VG(Volume Group) - 卷组 PV(Physical Volume) - 物理卷 1.查看分区信息:fdisk -l 可看到磁盘大小为1 ...