这个常见于.conf,.ini等类型的配置文件

下面先看一下如果通过python生成一个.ini文件

import configparser #2.x is ConfigParser
config = configparser.ConfigParser() #先生成一个对象
config["DEFAULT"] = {'ServerAliveInterval': '45',
'Compression': 'yes',
'CompressionLevel': '9'}
'''
config["DEFAULT"]自动生成根节点,等号右面的是这个节点下面的值,相当于DEFAULT是key,后面的是values
'''
config['bitbucket.org'] = {} #这是第二个key,value是空的
config['bitbucket.org']['User'] = 'hg' #这是给第二个key添加了一个键值对
config['topsecret.server.com'] = {} #这是第三个key
topsecret = config['topsecret.server.com'] #这是把这个key对应的值赋值给一个变量
topsecret['Host Port'] = '50022' # 添加key和value
topsecret['ForwardX11'] = 'no' # same here
config['DEFAULT']['ForwardX11'] = 'yes'#给DEFAULT赋值key和value
with open('example.ini', 'w') as configfile: #以w的形式打开example.ini文件
config.write(configfile) #把以上的内容写入这里,生成配置文件
-----------------上面是代码,下面是结果---------------------------
自动生成了一个example.ini文件,如下:
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes [bitbucket.org]
user = hg [topsecret.server.com]
host port = 50022
forwardx11 = no
#----------------------以下是读取上面生成的配置文件-------------------
import configparser
config = configparser.ConfigParser()
config.read('example.ini')
#查看所有的标题
res = config.sections() #当第一个根节点是大写的DEFAULT的时候,这个方法是读取不出来DEFAULT标题的,更改成其他任意值就能读取出来。但是他会把DEFAULT内的所有的key/value都划分到下一个标题中
print(res) #['bitbucket.org', 'topsecret.server.com'] 所以这里输出的值只有两个
re = config.defaults() #这个方法会把DEFAULT的key/vaule全部打出来 OrderedDict([('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes')])
print(re)
#查看bitbucket.org标题下所有的key
options = config.options('bitbucket.org') #这个里面包含了DEFAULT的全部的key
print(options) #['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11'] #查看bitbucket.org标题下所有的key-value,并以(key,value)形式输出
item_list = config.items('bitbucket.org')
print(item_list) #[('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'hg')] #获取bitbucket.org标题下user的值
val = config.get('bitbucket.org','user')
print(val) #hg
vall = config.get('bitbucket.org','serveraliveinterval')
print(vall) #45 这是获取的DEFAULT内的值 ------------------------------------看如何修改配置文件---------------------------------
这是配置文件:
[section1]
k1 = v1
k2:v2
user=egon
age=18
is_admin=true
salary=31
[section2]
k1 = v1 这是代码:
import  configparser
config = configparser.ConfigParser()
config.read('config.conf',encoding='utf-8') #删除整个标题section2
config.remove_section('section2')
config.write(open('config1.conf','w')) #删除之后要重新写入一个新的文件才能生效
#删除标题section1下的某个k1和k2
data1 = config.remove_option('section1','k1')
config.write(open('config1.conf','w')) #判断是否存在某个标题
print(config.has_section('section1')) #判断标题section1下是否有user
print(config.has_option('section1','')) #添加一个标题
config.add_section('egon') #在标题egon下添加name=egon,age=18的配置
config.set('egon','name','egon')
config.set('egon','age',18) #报错,必须是字符串 #最后将修改的内容写入文件,完成最终的修改
config.write(open('a.cfg','w'))
												

python之常用模块ConfigParser的更多相关文章

  1. python的常用模块之collections模块

    python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块?    常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...

  2. python之常用模块二(hashlib logging configparser)

    摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...

  3. Python学习——python的常用模块

    模块:用一堆代码实现了某个功能的代码集合,模块是不带 .py 扩展的另外一个 Python 文件的文件名. 一.time & datetime模块 import time import dat ...

  4. Python进阶--常用模块

    一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...

  5. python基础----常用模块

    一 time模块(时间模块)★★★★                                                      时间表现形式 在Python中,通常有这三种方式来表示时 ...

  6. python(五)常用模块学习

    版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. https://blog.csdn.net/fgf00/article/details/52357 ...

  7. Python(常用模块)

    模块 模块 本质上就是一个.py文件 内置模块(解释器层面) 第三方模块(Python lib文件) 自定义模块(当前路径) 模块调用,包的概念 在计算机程序的开发过程中,随着程序代码越写越多,在一个 ...

  8. python基础--常用模块与面向对象基础

    1常用模块 1.1 xml xml是实现不同语言或程序之间进行数据交换的协议 xml的格式如下: <?xml version="1.0"?> <data> ...

  9. Python编程-常用模块及方法

    常用模块介绍 一.time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行 ...

随机推荐

  1. Vue的fetch的概述和使用

    Fetch基本概念 (前端小白,刚学习vue,写的不好或是不对,请各位大佬多多指正!感激不尽!) Fetch 是一个现代的概念, 等同于 XMLHttpRequest.它提供了许多与XMLHttpRe ...

  2. PAT-进制转换

    3.5-进制转换 对于一个P进制的数,如果要转换为Q进制的数,需要分为两步: ①将P进制数x转换为十进制数y 对于一个十进制数y=d1d2···dn,可以将其写为: y = d1 * 10n-1 + ...

  3. python列表解析补充:

    python列表解析补充: # 补充: f = [x + y for x in 'ABCDE' for y in '1234567'] print(f) test = [] for x in 'ABC ...

  4. Ubutun18.04安装Python3.7.6

    最近因为环境问题,简单记录下Python3.7的安装过程: 下载地址:http://python.org/ftp/python/3.7.6/Python-3.7.6.tgz 编译安装步骤: sudo ...

  5. Matplotlib数据可视化(4):折线图与散点图

    In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParam ...

  6. 面向web前端及node开发人员的vim配置

    鉴于 window 下基本用不到 vim,所以下面内容不再提及 window,具体可以在相应 github 中查看手册操作基础:已装有上有 nodejs(npm).没装的可以移步官网:https:// ...

  7. Mysql(Mariadb)慢查询日志中long_query_time 与log_queries_not_using_indexes与min_examined_row_limit 关系分析

    慢查询日志中long_query_time 与log_queries_not_using_indexes与min_examined_row_limit 关系分析   参数介绍: long_query_ ...

  8. 使用selenium模拟登陆淘宝、新浪和知乎

    如果直接使用selenium访问淘宝.新浪和知乎这些网址.一般会识别出这是自动化测试工具,会有反制措施.当开启开发者模式后,就可以绕过他们的检测啦.(不行的,哭笑) 如果网站只是对windows.na ...

  9. MySQL 统计行数的 count

    MySQL count() 函数我们并不陌生,用来统计每张表的函数.但如果你的表越来越大,并且是 InnoDB 引擎的话,会发现计算的速度会越来越慢.在这篇文章里,会先介绍 count() 实现的原理 ...

  10. 利用mnist数据集进行深度神经网络

    初始神经网络 这里要解决的问题是,将手写数字的灰度图像(28 像素 x28 像素)划分到 10 个类别中(0~9).我们将使用 MINST 数据集,它是机器学习领域的一个经典数据集,其历史几乎和这个领 ...