目录
1.Python中配置文件的作用
2..cfg文件
3.python中的ConfigParser类
4.实例:
配置文件的作用就是将所有的代码和配置都变成模块化和可配置化,能够提高代码的重用性。(简单理解)
刚接触配置文件,可能写的不是十分准确,希望能把这个知识点疏通。
config这个配置文件可以自己编写,其写法十分简单,[section]下配置key=value,如下面的例子:sg.conf
#配置数据库
[segment]
enable = False
stopdictfile = resources/stoplists/cn.txt resources/stoplists/en.txt
userdictfile = resources/stoplists/user_dic.txt resources/new_wiki_words.dic
fenchiinput =
fenchioutput =
下面是读取config的方法模块:
#encoding:utf-8
#name:mod_config.py
import ConfigParser
import os
#获取config配置文件
def getConfig(section, key):
config = ConfigParser.ConfigParser()
path = os.path.split(os.path.realpath(__file__))[0] + '/sg.conf'
config.read(path)
return config.get(section, key)
#其中 os.path.split(os.path.realpath(__file__))[0] 得到的是当前文件模块的目录
当需要在文件中读取config的配置时,就载入这个模块,调用getConfig方法:
import mod_config
dbname = mod_config.getConfig("segment", "userdictfile")
ConfigParser是Python自带的模块,下面是我学习的相关操作内容:
(1)首先了解配置文件的格式:
[ ]包含的叫section,section下有option=value这样的键值。
(2)创建ConfigParser对象,并调用read()函数打开配置文件,里面填的参数是地址。
(3)常用的配置函数:
add_section() 往配置文件中添加section
set(section, name, value) 在section下设置name=value
with open(configfile) as cfile:
write(cfile)
将新增的配置信息写入到文件中
(1)db.cfg内容为:
[mysql_db_test]
host=localhost
port=3306
db=mysql
user=root
passwd=123456
(2) config_operate.py的内容为
from configparser import ConfigParser
#初始化类
cp = ConfigParser()
cp.read("db.cfg")
#得到所有的section,以列表的形式返回
section = cp.sections()[0]
print(section)
#得到该section的所有option
print(cp.options(section))
#得到该section的所有键值对
print(cp.items(section))
#得到该section中的option的值,返回为string类型
print(cp.get(section, "db"))
#得到该section中的option的值,返回为int类型
print(cp.getint(section, "port"))
(3)运行结果
mysql_db_test
['host', 'port', 'db', 'user', 'passwd']
[('host', 'localhost'), ('port', '3306'), ('db', 'mysql'), ('user', 'root'), ('passwd', '123456')]
mysql
3306
注:Python的ConfigParser Module 中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。 RawCnfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对%(value)s变量的 解析
INI文件:是初始化文件,是Windows的系统配置文件所采用的存储格式,是由节、键、值组成.
另外,附上学习链接:https://www.cnblogs.com/cnhkzyy/p/9294829.html
http://blog.chinaunix.net/uid-24585858-id-4820471.html