Django 如何操作ini网站配置文件?
一、.ini文件说明
格式如下:
;comments#
[section1]
Param1 = value1
Param2= value2
[section2]
Param3= value3
Param4= value4
; 注释
==[section]==代表一个模块,一个文件内可以设置多个模块,自定义模块名称
Param1 = value1参数名称以及参数值,键值对的形式
我的配置文件的内容为:
conf.ini
;设置语言
[lan]
language = Chinese
二、所需要的模块
import os
import configparser
三、读取操作
proDir = os.path.dirname(os.path.realpath(sys.argv[0]))
configPath = os.path.join(proDir,"conf.ini")#获取配置文件的路径
conf=configparser.ConfigParser()#创建对象用于对配置文件进行操作
conf.read(configPath,encoding="utf-8-sig")#以utf8编码形式读取
try:
lan = conf.get("lan","language") #读取配置文件设置的语言的值
except:
lan = "English"
读取的相关方法:
read(filename):读取文件内容
sections():得到所有的section,并以列表的形式返回。
options(section):得到该section的所有option。
items(section):得到该section的所有键值对。
get(section,option):得到section中option的值,返回string类型。
getint(section,option):得到section中option的值,返回int类型。
四、写入操作
# 修改配置文件中的语言
conf.set("lan","language","Chinese") #设置"lan"模块下的"language"的值为"Chinese"
conf.write(open(configPath,'w+',encoding="utf-8-sig")) #将修改写入到配置文件
写入的相关方法:
write(fp):将config对象写入至某个ini格式的文件中。
add_section(section):添加一个新的section。
set(section,option,value):对section中的option进行设置,需要调用write将内容写入配置文件。
remove_section(section):删除某个section。
remove_option(section,option):删除某个section下的option
五、细节注意
1、如果配置文件读取不到(不存在),则新建。
#判断是否存在配置文件,没有则创建
if os.path.exists(configPath) == False:
conf['lan'] = {'language':'English'}
with open('conf.ini','w',encoding="utf-8-sig") as configfile:
conf.write(configfile)
2、如果存在汉字,则需要将编码设为utf8。
conf.read(configPath,encoding="utf-8-sig") #注意是“utf-8-sig"
THE END