python读取ini文件模块-ConfigParser

2018-07-06  本文已影响0人  金苹果415

一、模块介绍

1.支持文件:该模块支持读取类似如上格式的配置文件,如 windows 下的 .conf 及 .ini 文件等。创建文件保存后缀名为ini或者conf文件

[db]

db_port = 3306

db_user = root

db_host = 127.0.0.1

db_pass = xgmtest

[concurrent]

processor = 20

thread = 10

2.必须实例化

ConfigParser.ConfigParser()进行实例化 例如cf = ConfigParser.ConfigParser()

3.基本方法:

基础读取配置文件

-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() 函数。

基础写入配置文件

-write(fp)                                                           将config对象写入至某个 .init 格式的文件  Write an .ini-format representation of the configuration state.

-add_section(section)                                    添加一个新的section

-set( section, option, value对section中的option进行设置,需要调用write将内容写入配置文件

-remove_section(section)                             删除某个 section

-remove_option(section, option)                 删除某个 section 下的 option

4.注意

实例化后写文件(write前面的cf是实例化赋值的变量。即cf= ConfigParser.ConfigParser()。as后面应该write括号里的保持一致)

with open("test2.ini","w+") as f:

  cf.write(f)

前 如果没有read原文件cf.read("test2.ini") 就会覆盖原来的文件内容。只有read原文件才会在之前的内容上追加。

5.路径问题

read 和write 如果只写文件名例如 cf.read("test2.ini")   没有加路径 cf.read("E:\senseyun\scripts\config.ini")。默认是在本目录下找文件。

二、示例

# -*- coding:utf-8 -*-

import ConfigParser

cf= ConfigParser.ConfigParser()

cf.read("E:\senseyun\scripts\config.ini")

print (cf.sections())

print (cf.items(cf.sections()[0]))

print (cf.options((cf.sections()[0])))

print (cf.get("db1","db_port"))

print (cf.getint("db1","db_port"))

cf.add_section("cf")

cf.set("cf","1","01")

with open("t2.conf","w+") as f:

    cf.write(f)

三、演示代码

# -*- coding:utf-8 -*-

import os

from ConfigParserimport SafeConfigParser

import ConfigParser

cf = ConfigParser.ConfigParser()

#修改配置文件

cf.read("t2.conf")

cf.add_section("cf")

cf.set("cf","1","01")

with open("t2.conf","w+")as f:

cf.write(f)

#读取配置文件

cf.read("t2.conf")

print (cf.sections())

print (cf.items(cf.sections()[0]))

print (cf.options((cf.sections()[0])))

print (cf.get("db","db_port"))

print (cf.getint("db","db_port"))

cf.remove_option("cf","1")

with open("t2.conf","w+")as f:

cf.write(f)

cf.read("t2.conf")

print (cf.items(cf.sections()[2]))#sections 函数没有参数

cf.remove_section("cf")

with open("t2.conf","w+")as f:

cf.write(f)

print (cf.sections())

上一篇下一篇

猜你喜欢

热点阅读