Python进阶-配置文件
一. 什么是配置文件?为什么要做配置文件?
将所有的代码和配置都变成模块化可配置化,这样就提高了代码的重用性,不再每次都去修改代码内部,这个就是我们逐步要做的事情,可配置化
二. 配置文件长啥样?
配置文件常见类型分为ini conf xml cfg,没啥区别,拍脑袋选用conf
文件内容结构为
section
item
option = value
[mysql_db_test]
host = localhost
port = 3306
db = mysql
user = root
passwd = 123456
bool = True
[key_word]
key1 = please
二. python中的ConfigParser类
模块:from configparser import ConfigParser
configparser是Python自带的模块,用法如下:
创建ConfigParser对象。并调用read()函数打开配置文件,里面填的参数是地址
配置文件的格式是:[]包含的叫section,section下有option=value这样的键值
常用配置函数如下
sections() 得到所有的section,并以列表的形式返回
options(section) 得到该section的所有option (key值)
items(section) 得到该section的所有键值对
get(section, option) 得到section中option的值,返回为string类型,指定标签下面的key对应的value值
getint(section, option) 返回为int类型
getintfloat(section, option) 返回为float类型
getintbool(section, option) 返回为boolean类型
add_section() 往配置文件中添加section
set(section, option, value) 在section下设置option=value,如果option存在则会覆盖
cp.write(open('db.conf','w')) 将新增的配置信息写入到文件中
from configparser import ConfigParser
cf = ConfigParser()
cf.read('db.conf')
#获取所有section,返回值为list
secs = cf.sections()
print(secs)
#获取db中的所有属性名
option=cf.options('db')
print(dboption)
#获取db中的键值对
item=cf.items('db')
print(item)
#获取section为db,属性名为db_pass的值
value=cf.get('db','db_pass')
print(value)
#写配置文件
cf.add_section('key_word')
cf.set('key_word', 'key', 'value')
cf.write(open('db.conf', 'w'))
Python进阶-配置文件的更多相关文章
- Python进阶5---StringIO和BytesIO、路径操作、OS模块、shutil模块
StringIO StringIO操作 BytesIO BytesIO操作 file-like对象 路径操作 路径操作模块 3.4版本之前:os.path模块 3.4版本开始 建议使用pathlib模 ...
- python进阶12 Redis
python进阶12 Redis 一.概念 #redis是一种nosql(not only sql)数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,还提 ...
- Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型)
Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶软件开发规范 六个目录: #### 对某 ...
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
- Python进阶 - 对象,名字以及绑定
Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...
- Python进阶-继承中的MRO与super
Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...
- Python进阶 - 命名空间与作用域
Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...
- python进阶学习笔记(一)
python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...
- 【python进阶】详解元类及其应用2
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...
随机推荐
- connection reset by peer问题总结及解决方案
找遍了 中英文网站,翻遍了能找的角落,发现了出现故障的原因和原理,及改如何处理,这里记录下,希望能帮助到有需要的小伙伴,少走点弯路, 以上就整理内容: connection reset by peer ...
- Mysql 调优2个语句
一.explain 语句 查看语句的执行计划 二.查看具体每一步耗时 .; .执行SQL .show profiles; 获取2执行SQL的query_id .show profile for que ...
- Convolutional Networks for Images,Speech,and Time-series
Convolutional Networks for Images,Speech,and Time-series Yann LeCun Yoshua Bengio 1995年的 1引言 多层BP网络 ...
- CAN总线优势
CAN总线优势 RS-485基于R线构建的分布式控制系统而言, 基于CAN总线的分布式控制系统在以下方面具有明显的优越性: 首先,CAN控制器工作于多主方式,网络中 的各节点都可根据总线访问优先权(取 ...
- Django Rest Framework源码剖析(六)-----序列化(serializers)
一.简介 django rest framework 中的序列化组件,可以说是其核心组件,也是我们平时使用最多的组件,它不仅仅有序列化功能,更提供了数据验证的功能(与django中的form类似). ...
- 20155207王雪纯《网络对抗》Exp4 恶意代码分析
20155207 <网络对抗> 恶意代码分析 学习总结 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件 ...
- 20155229《网络对抗技术》Exp9:Web安全基础
实验内容 Webgoat实践下相关实验. 实验步骤 WebGoat: Webgoat是OWASP组织研究出的一个专门进行web漏洞实验的应用品台,这个平台里包含了web中常见的各种漏洞,例如:跨站脚本 ...
- Remote 桌面的win2003 servre端设定
Microsoft Windows [版本 5.2.3790](C) 版权所有 1985-2003 Microsoft Corp. C:\Documents and Settings\Administ ...
- 异常 java.lang.IllegalArgumentException: Result Maps collection already contains value
这是因为用了一次以上(多次)mbg导致sql映射文件堆积导致的异常,删除对应的sql映射文件,然后重新生成即可. Caused by: java.lang.IllegalArgumentExcepti ...
- 《Effective Java》学习笔记 ——异常
充分发挥异常的优点,可以提高程序的可读性.可靠性和可维护性. 第57条 只针对异常的情况才使用异常 第58条 对可恢复的情况使用受检异常,对编程错误使用运行时异常 * 如果期望调用者能够适当的恢复,使 ...