当前位置:首页 > 开发语言/框架 > perl/python

Python 读取写下配置文件 —— ConfigParser

优良自学吧提供Python 读取写下配置文件 —— ConfigParser,Python 读取写入配置文件 —— ConfigParserPython 读取写入配置文件 —— ConfigParser     Python 读取写入配置文件很方便,可使用内置的 configparser 模块,于li

Python 读取写入配置文件 —— ConfigParser

Python 读取写入配置文件 —— ConfigParser

 

  Python 读取写入配置文件很方便,可使用内置的 configparser 模块,于lib中;如博主本机地址: “C:/python27/lib/configparser.py”

Configuration file parser.
 
A setup file consists of sections, lead by a "[section]" header,
and followed by "name: value" entries, with continuations and such in
the style of RFC 822.

  该模块支持读取类似如上格式的配置文件,如 windows 下的 .conf 及 .ini 文件等。

  本章节使用如下的配置文件作为示例,可在 D 盘下新建 Pyhton_config 文件夹,创建两个文件 test.config  及 test.ini  内容及示例截图如下:

Python 读取写下配置文件 —— ConfigParser
1 [db]
2 db_port = 3306
3 db_user = root
4 db_host = 127.0.0.1
5 db_pass = xgmtest
6 
7 [concurrent]
8 processor = 20
9 thread = 10
View Code

  

  本章节就基础读取及写入配置文件进行具体的说明。

 

   基础读取配置文件

 

  • -read(filename)               直接读取文件内容
  • -sections()                      得到所有的section,并以列表的形式返回
  • -options(section)            得到该section的所有option
  • -items(section)                得到该section的所有键值对
  • -get(section,option)        得到section中option的值,返回为string类型
  • -getint(section,option)    得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。

 

Python 读取写下配置文件 —— ConfigParser
 1 # !/usr/bin/env python
 2 # -*- coding:utf-8 -*-  
 3 
 4 import ConfigParser
 5 import os
 6 
 7 os.chdir("D:\\Python_config")
 8 
 9 cf = ConfigParser.ConfigParser()
10 
11 # cf.read("test.ini")
12 cf.read("test.conf")
13 
14 #return all section
15 secs = cf.sections()
16 print 'sections:', secs, type(secs)
17 opts = cf.options("db")
18 print 'options:', opts, type(opts)
19 kvs = cf.items("db")
20 print 'db:', kvs
21 
22 #read by type
23 db_host = cf.get("db", "db_host")
24 db_port = cf.getint("db", "db_port")
25 db_user = cf.get("db", "db_user")
26 db_pass = cf.get("db", "db_pass")
27 
28 #read int
29 threads = cf.getint("concurrent", "thread")
30 processors = cf.getint("concurrent", "processor")
31 print "db_host:", db_host
32 print "db_port:", db_port
33 print "db_user:", db_user
34 print "db_pass:", db_pass
35 print "thread:", threads
36 print "processor:", processors
ConfigParser

    示例代码详见上方,解析如下:

    需要实例化为 ConfigParser 对象  cf = ConfigParser.ConfigParser() ;读取文件  cf.read("test.conf") 

          secs = cf.sections()  获取sections,返回list  

           opts = cf.options("db")  获取db section下的 options,返回list  

     kvs = cf.items("db")  获取db section 下的所有键值对,返回list 如下,每个list元素为键值对元组

    

 

    通常情况下,我们已知 section 及 option,需取出对应值,读取方式如下:

#read by type
db_host = cf.get("db", "db_host")
db_port = cf.getint("db", "db_port")
db_user = cf.get("db", "db_user")
db_pass = cf.get("db", "db_pass")

 

    cf.get(...) 返回的会是 str 类型, getint 则返回int类型    

 

 

   基础写入配置文件

 

  • -write(fp)                                                           将config对象写入至某个 .init 格式的文件  Write an .ini-format representation of the configuration state.
  • -add_section(section)                                    添加一个新的section
  • -set( section, option, value                      对section中的option进行设置,需要调用write将内容写入配置文件Python 读取写下配置文件 —— ConfigParser
     1 import ConfigParser
     2 import os
     3 
     4 os.chdir("D:\\Python_config")
     5 
     6 cf = ConfigParser.ConfigParser()
     7 
     8 cf.add_section("test")
     9 cf.set("test", "count", 1)
    10 cf.add_section("test1")
    11 cf.set("test1", "name", "aaa")
    12 
    13 #modify one value and write to file
    14 with open("test2.ini","w+") as f:
    15     cf.write(f)
    ConfigParser2
  • -remove_section(section)                             删除某个 section
  • -remove_option(section, option)                 删除某个 section 下的 option

 

    需要配合文件读写函数来写入文件,示例代码如下

Python 读取写下配置文件 —— ConfigParser
 1 import ConfigParser
 2 import os
 3 
 4 os.chdir("D:\\Python_config")
 5 
 6 cf = ConfigParser.ConfigParser()
 7 
 8 # add section / set option & key
 9 cf.add_section("test")
10 cf.set("test", "count", 1)
11 cf.add_section("test1")
12 cf.set("test1", "name", "aaa")
13 
14 # write to file
15 with open("test2.ini","w+") as f:
16     cf.write(f)
ConfigParser2

    写入的文件如:

 

    修改类似写入,注意一定要 read 原文件!

Python 读取写下配置文件 —— ConfigParser
 1 import ConfigParser
 2 import os
 3 
 4 os.chdir("D:\\Python_config")
 5 
 6 cf = ConfigParser.ConfigParser()
 7 
 8 # modify cf, be sure to read!
 9 cf.read("test2.ini")
10 cf.set("test", "count", 2)            # set to modify
11 cf.remove_option("test1", "name")
12 
13 # write to file
14 with open("test2.ini","w+") as f:
15     cf.write(f)
ConfigParser3

    上述代码执行后:  [test] 下 count 的值为2; [test1] 下的 name 键值被删除,若需要删除整个 [test1] section,使用  cf.remove_section("test1") 

 

 

  

 


(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢