目录
py脚本作为配置文件
py脚本作为配置文件概述
配置文件是程序中经常遇到的一种信息记录方式,它可以把关键信息单独放在一个文件里集中管理。
配置文件中的信息主要以键值对形式存在,也有少量以表格形式存在。
Python中字典dict数据结构是键值形式,列表list的嵌套可以表示出二维表信息。因此,py脚本文件就可以直接作为配置文件。读取时,直接使用import语句。
其他语言(需要编译的语言)中,配置文件还有一个作用就是,修改配置文件后程序不需要重新编译。这里,Python是解释性语言,所以py脚本可以直接作为配置文件,修改后也不用(刻意)编译。
读取字典形式配置文件
新建一个py脚本文件,里面只定义字典dict对象,保存配置信息。
脚本文件myconfig.py,内容如下
# 测试环境配置
database_test={
"url":"localhost",
"user":"zhangsan",
"passwd":"123456",
"database":"mydb01"
}
# 生产环境配置
database_prod={
"url":"www.xxx/xxx/xx",
"user":"zhangsan2",
"passwd":"123456",
"database":"mydb02"
}
配置文件的读取
import myconfig
flag=0 # 用来判断当前选择哪个配置环境
print(myconfig.database_test)
print(myconfig.database_prod)
if flag==0:
print(myconfig.database_test["user"])
print(myconfig.database_test["database"])
else:
print(myconfig.database_prod["user"])
print(myconfig.database_prod["database"])
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t12.py
{'url': 'localhost', 'user': 'zhangsan', 'passwd': '123456', 'database': 'mydb01'}
{'url': 'www.xxx/xxx/xx', 'user': 'zhangsan2', 'passwd': '123456', 'database': 'mydb02'}
zhangsan
mydb01
Process finished with exit code 0
读取表格形式配置文件
新建一个py脚本文件,里面只定义列表list嵌套对象,保存配置信息。
脚本文件myconfig2.py,内容如下
# 默认配置1
mydefault=[
["zhangsan",18,"english",90,"good","beijing"],
["wangwu",19,"english",60,"bad","beijing"],
["tiantian",18,"english",95,"good","hebei"]
]
# 默认配置2
mydefault2=[
["zhangsan",18,"english",99,"very good","beijing"],
["wangwu",19,"english",98,"very good","beijing"],
["tiantian",18,"english",97,"very good","hebei"]
]
配置文件的读取
import myconfig2
print(myconfig2.mydefault)
print(myconfig2.mydefault2)
print(myconfig2.mydefault2[0][0])
print(myconfig2.mydefault2[0][1])
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t13.py
[['zhangsan', 18, 'english', 90, 'good', 'beijing'], ['wangwu', 19, 'english', 60, 'bad', 'beijing'], ['tiantian', 18, 'english', 95, 'good', 'hebei']]
[['zhangsan', 18, 'english', 99, 'very good', 'beijing'], ['wangwu', 19, 'english', 98, 'very good', 'beijing'], ['tiantian', 18, 'english', 97, 'very good', 'hebei']]
zhangsan
18
Process finished with exit code 0