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开始按秒计算的偏移量.我们运行 ...
随机推荐
- 达拉草201771010105《面向对象程序设计(java)》第八周学习总结
达拉草201771010105<面向对象程序设计(java)>第八周学习总结 实验六接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: (2) ...
- MVC09
1.委托(delegate)调用静态方法 委托类似于C++中的函数指针. 某方法仅仅在执行的时候才能确定是否被调用. 是实现事件和回调函数的基础. 面向对象,安全性高. using System; u ...
- C++编码规范(转)
转载链接:https://www.jianshu.com/p/b262d76902e4 一.命名规范 1.通则 1).所有命名都应使用标准的英文单词或缩写,不得使用拼音或拼音缩写,除非该名字描述的是中 ...
- java异常和throw和throws的区别
之前在编程中编译完成后,运行时,会遇见一些常见的错误,如NullPointerException,ArrayIndexOutOfBoundsException等等 在今天重新回顾学习了java异常,总 ...
- Java Opencv 实现锐化
§ Laplacian() void cv::Laplacian ( InputArray src, O ...
- 前端AES加密解密
最开始使用的aes-js的npm包,后来发现npm上面那个包只能加密16个长度的字节,非16个长度的字符串就会报错,后来使用的是crypto-js, AES总共有四种加密方式,我们使用的CBC方式: ...
- 移值 RTL8188EUS linux4.1.36 驱动
网卡为COMFAST CF-WU720N RTL8188EUSVID 0x0bdaPIV 0x8179 驱动下载网址是http://www.comfast.cn/download/qdcx/item- ...
- Scrapy同时启动多个爬虫
1. 在项目文件夹中新建一个commands文件夹 2. 在command的文件夹中新建一个文件 crawlall.py 3.在crawlall.py 中写一个command类,该类继承 scrapy ...
- HTTP中主要的头字段
HTTP中主要的头字段 头字段类型 含义 备注 通用头:适用于请求和响应消息的头字段 Date 表示请求和响应生成的日期 Pragma 表示数据是否允许缓存的通信选项 Cache-Contro ...
- onOK Modal.warning iview 要写一个函数 套上,不然会得不到异步调用,直接弹出的时候就执行了
export const warning = (str, callback = _ => {}, outCallback = () => {}) => { Modal.warning ...