python 配置文件如何使用
项目中使用的常量,我们把它收集在一个文件中,这就是配置文件。配置文件在项目中是非常必要的,它避免了项目中文件对常量的分散使用,让常量可以统一修改,避免造成修改不全面的问题。
常用的配置文件后缀是.ini、.conf、.py,当然还有使用.json、.txt的,推荐使用常用的.ini、.py,配置文件的名字一般是config便于理解和使用。
云海天教程网,大量的免费python教程,欢迎在线学习!
.ini文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置;.py的配置文件,在python项目中是作为一个包导入,严格来说不是配置文件,而是扩展包。
下面将介绍两类配置文件的使用,一类是.ini、.txt,另一类是.py。
.ini、.txt配置文件使用方法是一致的,只是一个后缀的区别,这里以ini配置文件来介绍,这类配置文件我们使用内置configparser库来使用,它可以实现配置文件的写入、更新、删除、读取等操作非常方便,建议使用这种方式。
相关推荐:《Python入门教程》
新建一个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格式配置文件一般用来存放大量的结构化配置或者本地数据,使用较少。
最后一种是数据库配置,将配置文件写到数据库,每次程序运行前先读取数据库,在初始化,这种准确来说已经不再是配置,而是程序设计的方案。
来源:PY学习网:原文地址:https://www.py.cn/article.html