关于配置文件config的学习

目录

1.Python中配置文件的作用

2..cfg文件

3.python中的ConfigParser类

4.实例:


1.Python中配置文件的作用

配置文件的作用就是将所有的代码和配置都变成模块化和可配置化,能够提高代码的重用性。(简单理解)

2..cfg文件

刚接触配置文件,可能写的不是十分准确,希望能把这个知识点疏通。

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")

3.python中的ConfigParser类

ConfigParser是Python自带的模块,下面是我学习的相关操作内容:

(1)首先了解配置文件的格式:

          [ ]包含的叫section,section下有option=value这样的键值。

(2)创建ConfigParser对象,并调用read()函数打开配置文件,里面填的参数是地址。

(3)常用的配置函数:

  •          get(section, option)  得到section中option的值,返回为string类型,指定标签下面的key对应的value值;
  •          options(section)  得到该section的所有option (key值)
  •          sections()  得到所有的section,并以列表的形式返回
  •          items(section)  得到该section的所有键值对
  •         getint(section, option)  得到section中的option值,返回为int类型

add_section()  往配置文件中添加section

set(section, name, value)  在section下设置name=value

with open(configfile) as cfile:

  write(cfile)

将新增的配置信息写入到文件中

4.实例:

(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

你可能感兴趣的:(python学习)