configparser模块用于生成和修改常见配置文档。

预制配置文件:conf.ini

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes [bitbucket.org]
User = hg
MaxUsers = 100 [topsercret.server.com]
Port = 50022
ForwardX11 = no
解析配置文件
>>> import configparser
>>> conf = configparser.ConfigParser() # 准备处理文件
>>> conf.read('conf_ini')
['conf_ini']
>>> print(conf.sections())
['bitbucket.org', 'topsercret.server.com']
>>> print(conf.default_section)
DEFAULT
>>> 'bitbucket.org' in conf
True
>>> conf['bitbucket.org']['User']
'hg'
>>> print(list(conf['bitbucket.org'].keys()))
['user', 'maxusers', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
>>> for k in conf['topsercret.server.com']:
... print(k)
...
port
forwardx11
serveraliveinterval
compression
compressionlevel

  可以发现,每个节点都会默认包含default值。

增删改查

首先准备conf_test.ini文件

[group1]
k1 = v1
k2:v2 [group2]
k1=v1

对conf_test_ini文件进行读和添加操作:

>>> import shutil
>>> shutil.copyfile('conf_ini', 'conf_test.ini')
'conf_test.ini'
# vim conf_test.ini 修改配置文件信息 >>> import ConfigParser
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'ConfigParser'
>>> import configparser
>>> conf = configparser.ConfigParser()
>>> conf.read('conf_test.ini')
['conf_test.ini']
print(dir(conf))
['BOOLEAN_STATES', 'NONSPACECRE', 'OPTCRE', 'OPTCRE_NV', 'SECTCRE', '_DEFAULT_INTERPOLATION',...'set', 'setdefault', 'update', 'values', 'write']
>>> print(conf.options('group1'))
['k1', 'k2']
>>> print(conf['group1']['k2'])
v2
>>> conf.add_section('group3')
>>> conf['group3']['name'] = 'hqs'
>>> conf['group3']['age'] = '' # 不能使用数字
>>> conf.write(open('conf_test.ini', 'w')) # 写入新文件
[group1]
k1 = v1
k2 = v2 [group2]
k1 = v1 [group3]
name = hqs
age = 22

对conf_test_ini文件进行删操作

>>> import configparser
>>> conf = configparser.ConfigParser()
>>> conf.read('conf_test.ini')
['conf_test.ini']
>>> conf.remove_option('group1', 'k2') # 删除某一项
True
>>> conf.write(open('conf_test.ini', 'w')) [group1]
k1 = v1 [group2]
k1 = v1 [group3]
name = hqs
age = 22
>>> import configparser
>>> conf = configparser.ConfigParser()
>>> conf.read('conf_test.ini')
['conf_test.ini']
>>> conf.remove_section('group3') # 删除某一整个章节
True
>>> conf.write(open('conf_test.ini', 'w'))
>>> ^D
MacBook-Pro:Desktop hqs$ cat conf_test.ini
[group1]
k1 = v1 [group2]
k1 = v1

configparser模块——配置文档的更多相关文章

  1. python常用模块-配置文档模块(configparser)

    python常用模块-配置文档模块(configparser) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ConfigParser模块用于生成和修改常见配置文档,当前模块的名称 ...

  2. configparser模块——用于生成和修改常见配置文档

    配置文档格式 [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [b ...

  3. Python学习 :常用模块(四)----- 配置文档

    常用模块(四) 八.configparser 模块 官方介绍:A configuration file consists of sections, lead by a "[section]& ...

  4. Nginx配置文档具体解释

    Nginx的配置文档具体解释.在这儿做个总结,以便以后使用的时间查看. 下面大部分自己整理.部分来自參考 #设置用户 #user  nobody; #启动进程数(一般和server的CPU同样) #能 ...

  5. MYSQL服务器my.cnf配置文档详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

  6. 转!!Java代码规范、格式化和checkstyle检查配置文档

    为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...

  7. Hibernate配置文档详解

    Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...

  8. Java代码规范、格式化和checkstyle检查配置文档

    http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...

  9. Spring Hibernate4 整合配置文档

    1 applicationContext.xml配置文档 <?xml version="1.0" encoding="UTF-8"?><bea ...

随机推荐

  1. Wiki凭什么持续得到开发人员和团队的喜爱

    大家好,我是华为云DevCloud项目管理服务的产品经理恒少,作为布道师和产品经理,出差各地接触客户是常态,线下和华为云的客户交流.布道.技术沙龙. 但是线下交流,覆盖的用户总还是少数.我希望借助线上 ...

  2. 5.js与jQuery入口函数执行时机

    js与jQuery入口函数执行时机区别: JS入口函数是在所有资源加载完成后,才执行.(包括:页面.外部js文件.外部css文件.图片) jQuery入口函数,是在文档加载完成后就执行.文档加载完成指 ...

  3. VUE学习(一)

    1.搭建vue环境 2.了解 v-on  事件监听,常常跟事件(click,mousemove,change等鼠标或者手势事件)在一起,eg:v-on:click,语法糖——:(冒号) 需要在meth ...

  4. gnome-terminal

    在终端中打开终端: gnome-terminal 同时打开多个终端: gnome-terminal --window --window 此处有几个 --window 就会打开几个终端 最大化形式打开终 ...

  5. gevent 传参, 中文编码

    #coding=utf-8 import os from gevent import monkey,pool monkey.patch_all() import gevent import time ...

  6. AJAX概述和简单使用

    一.ajax概述: asynchronous javascript and xml ,用于异步的向服务器发出请求,接收数据的 一种技术. 在整个过程中:页面无刷新,不打断用户的操作: 按需要获取数据, ...

  7. SPOJ - LOCKER 数论 贪心

    题意:求出\(n\)拆分成若干个数使其连乘最大的值 本题是之江学院网络赛的原题,计算规模大一点,看到EMAXX推荐就做了 忘了大一那会是怎么用均值不等式推出结果的(还给老师系列) 结论倒还记得:贪心分 ...

  8. C# 判断两个集合(List)是否相等

    1.两个list如果有重复元素(如List1: a,b,a  List2: b,b,a) 是无法通过包含关系来判断是否相等的. 有两个办法,其一是两个List排序后再按顺序比较.另一个办法就是计算各元 ...

  9. vm12下Centos6的javaweb环境搭建

    配置linux的javaweb环境之前: 1.在windows安装xshell(非必需,但是推荐) 2.在linux安装Linux与windows文件传输工具RZSZ[root@192 ~]# yum ...

  10. django设置打印数据库日志

    在settings.py中添加: LOGGING = { 'disable_existing_loggers': False, 'version': 1, 'handlers': { 'console ...