对于一些小的项目代码,配置参数都是固定的,可以直接写入代码里面,有些则可以通过输入框输入,但对于一个大的工程,或者说真正意义的工程来说,配置参数是多变的,或者数据量是很庞大的,所以需要一个文件进行保存。最近刚好要用到,所以上网搜了一下资料,整理了一下。
python 的配置文件主要用 .ini后缀的文件,自带了一个叫 configparser的库。
下面是这个库的基本使用:
(1)直接用记事本新建一个配置文件
(2)编写规则:
每个模块叫一个section,名字用中括号 " [] " 括起来
然后每一行写一个option ,每个选项就是一个option。直接写名字,后面加 " = " 再加上它的值就行
可以在配置文件中加入注释 ,但是注释必须是单独的一行,且以 “#” 开头。只是每次运行时不会读入注释,只要运行一次,写入文件后,所有的注释都会消失。所以仅仅用于第一次初始化时有用(如果不进行写入,则可以一直在)。
[section1]
option1 = 11
option2 = 123
#我是注释
#我是另一个注释
[section2]
name = "czj"
password = 123456
add = "sicnu"
保存文件的时候要修改后缀名,编码格式要是 utf-8 以免出错。
#coding = utf-8
import configparser
#创建一个类
config = configparser.ConfigParser()
config.read("demo.ini", encoding="utf-8")
print(config.sections())
运行结果
print(config.options("section1"))
result = config.items("section2")
print(result)
#返回值为列表类型
print(type(result))
#列表的每一个元素为元组类型
result0=result[0]
print(type(result0))
#1.get方法
print(config.get("section1","option2"))
#2.另一种读取方法
print(config["section2"]["password"])
config.set("section1", "option1", "11") #修改db_port的值为69
config.write(open("demo.ini", "w"))
config.has_section("section1") #是否存在该section
config.has_option("section1", "option1") #是否存在该option
if not config.has_section("default"): # 检查是否存在section
config.add_section("default")
if not config.has_option("default", "db_host"): # 检查是否存在该option
config.set("default", "db_host", "1.1.1.1")
config.write(open("demo.ini", "w"))
config.remove_section("default") #整个section下的所有内容都将删除
config.remove_option("section1","option3")
config.write(open("demo.ini", "w"))
在创建类的时候,使用了read的方法,是把文件读到了内存,在内存中进行了改变,但是如果不进行文件的写入,那么这些修改都是没用的,文件不会产生任何的改变。切记切记,每次更改之后记得重新写回文件中
config.write(open("demo.ini", "w"))
本文参考文章链接