python中配置文件的使用方法
项目中使用的常量,我们把它收集在一个文件中,这就是配置文件。配置文件在项目中是非常必要的,它避免了项目中文件对常量的分散使用,让常量可以统一修改,避免造成修改不全面的问题。
常用的配置文件后缀是.ini、.conf、.py,当然还有使用.json、.txt的,推荐使用常用的.ini、.py,配置文件的名字一般是config便于理解和使用。
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置;.py的配置文件,在python项目中是作为一个包导入,严格来说不是配置文件,而是扩展包。
下面将介绍两类配置文件的使用,一类是.ini、.txt,另一类是.py。
.ini、.txt配置文件使用方法是一致的,只是一个后缀的区别,这里以ini配置文件来介绍,这类配置文件我们使用内置configparser库来使用,它可以实现配置文件的写入、更新、删除、读取等操作非常方便,建议使用这种方式。
新建一个config.ini的配置文件内容如下:
[mysql]
name = admin
host = 255.255.255.0
proxy = 6037
password = 123456
pool = true
time = 3
其中[]中的是section节点,该节点下的等式是option即键=值
config.sections() # 获取section节点
['mysql']
config.options('mysql') # 获取指定section 的options即该节点的所有键
['name', 'host', 'proxy', 'password', 'pool', 'time']
config.get("mysql", "name") # 获取指定section下的options
'admin'
config.getint("mysql", "proxy") # 将获取到值转换为int型
6037
config.getboolean("mysql", "pool") # 将获取到值转换为bool型
True
config.getfloat("mysql", "time") # 将获取到值转换为浮点型
3.0
config.items("mysql") # 获取section的所用配置信息
[('name', 'admin'), ('host', '255.255.255.0'), ('proxy', '6037'), ('password', '123456'), ('pool', 'true'), ('time', '3')]
config.set("mysql", "name", "root") # 修改db_port的值为69
config.get("mysql", "name")
'root'
config.has_section("mysql") # 是否存在该section
True
config.has_option("mysql", "password") # 是否存在该option
True
config.add_section("redis") # 添加section节点
config.set("redis", "name", "redis_admin") # 设置指定section 的options
config.items('redis')
[('name', 'redis_admin')]
常用方法如下:
# -*- coding: utf-8 -*-
import configparser
config = configparser.ConfigParser()
config.read("Config.ini", encoding="utf-8")
config.sections() # 获取section节点
config.options('mysql') # 获取指定section 的options即该节点的所有键
config.get("mysql", "name") # 获取指定section下的options
config.getint("mysql", "proxy") # 将获取到值转换为int型
config.getboolean("mysql", "pool") # 将获取到值转换为bool型
config.getfloat("mysql", "time") # 将获取到值转换为浮点型
config.items("mysql") # 获取section的所用配置信息
config.set("mysql", "name", "root") # 修改db_port的值为69
config.has_section("mysql") # 是否存在该section
config.has_option("mysql", "password") # 是否存在该option
config.add_section("redis") # 添加section节点
config.set("redis", "name", "redis_admin") # 设置指定section 的options
config.remove_section("redis") # 整个section下的所有内容都将删除
config.remove_option("mysql", 'time') # 删除section下的指定options
config.write(open("Config", "w")) # 保存config
当然使用.text、.conf后缀的情况如上,使用方法也同上。
至于使用.py文件的配置方法可以同使用一个本地包一样,也可以像scrapy的get_project_settings方法初始化setting.py,这个就显得很专业,后面会对其源码详细分析。
;.json格式配置文件一般用来存放大量的结构化配置或者本地数据,使用较少。
最后一种是数据库配置,将配置文件写到数据库,每次程序运行前先读取数据库,在初始化,这种准确来说已经不再是配置,而是程序设计的方案。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何在 Spring 中自定义 scope
大家对于 Spring 的 scope 应该都不会默认。所谓 scope,字面理解就是“作用域”、“范围”,如果一个 bean 的 scope 配置为 singleton,则从容器中获取 bean 返回的对象都是相同的;如果 scope 配置为prototype,则每次返回的对象都不同。一般情况下,Spring 提供的 scope 都能满足日常应用的场景。但如果你的需求极其特殊,则本文所介绍自定义 scope 合适你。 Spring 内置的 scope 默认时,所有 Spring bean 都是的单例的,意思是在整个 Spring 应用中,bean的实例只有一个。可以在 bean 中添加 scope 属性来修改这个默认值。scope 属性可用的值如下: 标题1 标题2 singleton 每个 Spring 容器一个实例(默认值) protot
- 下一篇
【开发】TensorFlow2.0新特性
上周在Sunnyvale举办的TensorFlow开发峰会上,Google发布了最新一版的TensorFlow: 2.0 Alpha版本。它较原先的1.x版本有什么改进呢?我们知道作为一个算法研究工具,tensorflow相较于同类型产品,编码是较为复杂的,需要引入额外的“搭建阶段(Construction Phase)”来创建视图,创建会话,初始化变量等等。同样是一段计算一串等比数列(1,1/2,1/4...)前50项之和,PyTorch的代码只有区区几行: 而在Tensorflow则要经历环境和执行阶段的构建工作。 结构的复杂性同时会延长前期入门人员的学习曲线及增大后期Debug的排障难度。而在TensorFlow2.0中,产品组从用户角度出发,简化了流程,不再需要建立用户会话,与Python语言更加融合,并统一了API的调用接口。 举个例子,原来我们要计算两个数乘积的平方根,需要定义视图,创建会话,设定变量。 在TensorFlow2.0中,系统省去了建立会话的麻烦。 嗯,快速执行(Eager Execution)看似简化了编码的工作,那效率怎样呢?会比通过用户会话层交互更快么?...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Mario游戏-低调大师作品
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能