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格式配置文件一般用来存放大量的结构化配置或者本地数据,使用较少。

最后一种是数据库配置,将配置文件写到数据库,每次程序运行前先读取数据库,在初始化,这种准确来说已经不再是配置,而是程序设计的方案。

image
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 4,376评论 0 5
  • sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功...
    道书简阅读 1,573评论 0 0
  • 模块和包 一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是...
    go以恒阅读 2,349评论 0 4
  • 想起你的样子,差不多快要忘记了,跟你最后的联系是我的通讯录上有你的名字,而我不希望看见你,隐藏为了...
    一个会画画的文字控阅读 535评论 0 2
  • 情绪这东西 无法改变现实 却左右了未来的走向
    余小禾阅读 530评论 0 0

友情链接更多精彩内容