python之常用模块ConfigParser
这个常见于.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的更多相关文章
- python的常用模块之collections模块
python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...
- python之常用模块二(hashlib logging configparser)
摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...
- Python学习——python的常用模块
模块:用一堆代码实现了某个功能的代码集合,模块是不带 .py 扩展的另外一个 Python 文件的文件名. 一.time & datetime模块 import time import dat ...
- Python进阶--常用模块
一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...
- python基础----常用模块
一 time模块(时间模块)★★★★ 时间表现形式 在Python中,通常有这三种方式来表示时 ...
- python(五)常用模块学习
版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. https://blog.csdn.net/fgf00/article/details/52357 ...
- Python(常用模块)
模块 模块 本质上就是一个.py文件 内置模块(解释器层面) 第三方模块(Python lib文件) 自定义模块(当前路径) 模块调用,包的概念 在计算机程序的开发过程中,随着程序代码越写越多,在一个 ...
- python基础--常用模块与面向对象基础
1常用模块 1.1 xml xml是实现不同语言或程序之间进行数据交换的协议 xml的格式如下: <?xml version="1.0"?> <data> ...
- Python编程-常用模块及方法
常用模块介绍 一.time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行 ...
随机推荐
- 探究Java中的引用
探究Java中的四种引用 从JDK1.2版本开始,Java把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用.本篇就来详细探究 ...
- .NET平台编程语言的衰败
.NET平台编程语言的衰败 JVM上的编程语言除了Java,其它还有很多,比如最近谷歌公司力捧JVM平台上的语言Kotlin.大数据用的Scala.构建系统用的Groovy..NET平台上的编程语言曾 ...
- 学h5前端开发前必知的三大流行趋势
学h5前端开发前必知的三大流行趋势 随着互联网时代的飞速发展,各种互联网的Web应用程序层出不穷,很多人对于HTML5前端开发的过程充满了好奇,但是却没有了解到前端开发的未来发展趋势.下面,云慧学院专 ...
- mongoose .find().limit()返回undefined
当我们使用mongoose的find方法查询数据库的同时,可以使用limit方法来指定返回数据的条数. limit方法基本语法如下所示: >db.COLLECTION_NAME.find().l ...
- js中~~和^=分别代表什么,用处是什么?
先看个栗子: ~~false === 0 ~~true === 1 ~~undefined === 0 ~~!undefined === 1 ~~null === 0 ~~!null === 1 ~~ ...
- Fortify Audit Workbench 笔记 Access Control: Database
Abstract 如果没有适当的 access control,就会执行一个包含用户控制主键的 SQL 指令,从而允许攻击者访问未经授权的记录. Explanation Database access ...
- 回想笔记 瞎比比 域名注册 解析绑定ip 下载证书 设置证书 重定向http到https请求
2019.7.27 回想笔记 拥有腾讯云服务器一台 阿里云注册5元域名,进行备案 完成之后 使用解析 绑定服务器ip地址 ,使用域名可以访问到web服务器而不是通过直接暴露ip地址进行访问 证书购买 ...
- Elasticsearch数据建模笔记
数据建模 数据建模是创建数据模型的过程 数据模型是对真实世界进行抽象描述的一种工具和方法,实现对现实世界的映射 三个过程:概念模型=>逻辑模型=>数据模型 数据模型:结合具体的数据库,在满 ...
- Spring Cloud 理论篇
show me the code and talk to me,做的出来更要说的明白 github同步收录 我是布尔bl,你的支持是我分享的动力! 微服务 在 jsp 时代,应用前后端耦合,前后端 a ...
- unittest测试框架详解
单元测试的定义 1. 什么是单元测试? 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类,一般是开发来做的,按照测试 ...