configparser模块一般是用来处理配置文件的,如:

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

如果想用python生成一个这样的配置文件怎么做?

把配置文件当做一个类似字典的对象去处理,即处理键值对

import configparser
config = configparser.ConfigParser() #拿到config对象 config["DEFAULT"] = {'ServerAliveInterval': '45', #第一个[DEFAULT]块,像字典一样去定义;[DEFAULT]块是默认的块,有特殊之处,见后面
'Compression': 'yes',
'CompressionLevel': '9'} config['bitbucket.org'] = {} #第二个[bitbucket.org]块
config['bitbucket.org']['User'] = 'hg' config['topsecret.server.com'] = {'Port':'50022', #第三个[topsecret.server.com]块
'ForwardX11':'no'} with open('test.ini', 'w') as configfile: #自定义写入的文件
config.write(configfile)

查看

import configparser
config = configparser.ConfigParser() config.read('test.ini') #读取文件 print(config.sections()) #['bitbucket.org', 'topsecret.server.com'] #sections()就是所有的块,不包括DEFAULT默认块 print('bytebong.com' in config)# False #不存在就是false print(config['bitbucket.org']['User']) # hg #存在,拿到键user对应的值hg print(config['DEFAULT']['Compression']) #yes #存在,拿到键compression对应的值yes for key in config['bitbucket.org']: #user serveraliveinterval compression compressionlevel #除了user,还拿到了DEFAULT默认块里的键
print(key)
结果:

['bitbucket.org', 'topsecret.server.com']
False
hg
yes
user
serveraliveinterval
compression
compressionlevel

查看还有三个方法:

print(config.options('bitbucket.org'))                             #options()拿到键,同样包括默认块
#['user', 'serveraliveinterval', 'compression', 'compressionlevel']
print(config.items('bitbucket.org')) #items()拿到键值对,同样包括默认块
#[('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('user', 'hg')]
print(config.get('bitbucket.org','compression')) #get()拿到一个块中的一个键对应的值
#yes

所以DEFAULT块是默认块,其他的每一个块中都包括默认块中的键值对

增删改

config.add_section('yuan')                        #新增yuan块
config.remove_section('topsecret.server.com') #删除topsecret.server.com块
config.set('bitbucket.org','user','admin') #修改bitbucket.org块的user键对应的值为admin
config.set('bitbucket.org','passwd','123456') #新增bitbucket.org块的passwd键,值为123456
config.remove_option('bitbucket.org','user') #删除bitbucket.org块的user键值对
config.set('yuan','k1','11111') #新增yuan块的k1键,值为11111 config.write(open('test123.ini', "w")) #最后要写入文件,可以是读取时的文件(即覆盖),也可以是新增的另一个文件

最后被修改后的test123.ini文件:

[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9 [bitbucket.org]
passwd = 123456 [yuan]
k1 = 11111

(十八)configparser模块的更多相关文章

  1. Python学习日记(二十八) hashlib模块、configparse模块、logging模块

    hashlib模块 主要提供字符加密算法功能,如md5.sha1.sha224.sha512.sha384等,这里的加密算法称为摘要算法.什么是摘要算法?它又称为哈希算法.散列算法,它通过一个函数把任 ...

  2. 18、手把手教你Extjs5(十八)模块记录的拖放删除、拖放复制新增

    网页当中的拖放(drag-drop)是比较有趣的操作,extjs5中很好的封装了拖放的动作,也有各种类来支持,但是要学好“拖放”这个东西真是很难,特别是象我这样英语不好的人,看不太懂官网上的说明,做一 ...

  3. 第十八篇 模块与包--time&random模块&模块导入import(os.path.dirname(os.path.abspath(__file__)))

    模块 在Python中, 一个.py文件就称为一个模块. 使用模块的好处: 1. 最大的好处就是大大提高了代码的可维护性 2. 编写代码不必从零开始.一个模块编写完毕,就可以被其他地方引用.在写其他程 ...

  4. Python学习日记(十八) 序列化模块

    什么是序列? 就是每一个元素被有序的排成一列 什么是序列化? 就是将原本的列表.字典等内容转化成字符串的过程 什么时候会用到序列化? 数据存储(把数据放在文件.数据库),网络传输等 序列化的目的 1. ...

  5. Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块

    一.shutil 模块 1.shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,需要打开文件 import shutil shutil.co ...

  6. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

  7. {Python之线程} 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Threading模块 九 锁 十 信号量 十一 事件Event 十二 条件Condition(了解) 十三 定时器

    Python之线程 线程 本节目录 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Thr ...

  8. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十八:SDRAM模块① — 单字读写

    实验十八:SDRAM模块① — 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者.笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙.<整合篇>之际, ...

  9. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

随机推荐

  1. hive实例的使用

    一.hive用本地文件进行词频统计 1.准备本地txt文件 2.启动hadoop,启动hive 3.创建数据库,创建文本表 4.映射本地文件的数据到文本 5.hql语句进行词频统计交将结果保存到结果表 ...

  2. 自顶向下redis4.0(5)持久化

    redis4.0的持久化 目录 redis4.0的持久化 简介 正文 rdb持久化 save命令 bgsave命令 rdb定期保存数据 进程结束保存数据 aof持久化 数据缓冲区 刷新数据到磁盘 ap ...

  3. css进阶 02-CSS布局

    02-CSS布局 #前言 #常见的布局属性 (1)display 确定元素的显示类型: block:块级元素. inline:行内元素. inline-block:对外的表现是行内元素(不会独占一行) ...

  4. K8S构建1台master2台node+Harbor_笔记

    部署环境: master.node:centos7虚拟机 网络使用本地网卡共享到VMnet1(仅主机),虚拟机使用VMnet1. 准备文件: CentOS-7-x86_64-Minimal-1810. ...

  5. 太酷炫了!!我会Python 导包八种方法,你呢?

    1. 直接 import 人尽皆知的方法,直接导入即可 >>> import os >>> os.getcwd() '/home/wangbm'复制代码 与此类似的 ...

  6. 每天学习一点ES6(二)let 和 const

    let 命令 let 和 var 差不多,只是限制了有效范围. 先定义后使用 不管是什么编程语言,不管语法是否允许,都要秉承先定义,然后再使用的习惯,这样不会出幺蛾子.以前JavaScript比较随意 ...

  7. Windows无法访问共享文件夹

    问题描述 今天打开vss连接代码,提示如下信息 解决办法 可行:重置登录用户信息 原博文 https://zhidao.baidu.com/question/1174230805440255699.h ...

  8. 漫画 | 老泪纵横,约会也不敢耽误改bug

    啥都不说了, 直接看图, 就说你中了几枪. 小莱已经抹了好几把辛酸泪-- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 关于作者 作者:大家好,我是莱乌,BAT搬砖工一枚.从 ...

  9. 登录&单点登录介绍

    COOKIE & SESSION & TOKEN 主要用来跟踪会话,识别用户所用.cookie 是客户端,session 是服务端的. 因为 http 是无状态协议,每一次的访问都不知 ...

  10. react状态管理器之mobx

    react有几种状态管理器,今天先来整理一下mobx状态管理器,首先了解一下什么是mobx 1.mobx成员: observable action 可以干嘛: MobX 的理念是通过观察者模式对数据做 ...