天天看点

Python读写配置configparser一、介绍二、API三、ConfigParser Objects四、RawConfigParser Objects五、实例

参考:configparser官网

一、介绍

ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。

注意:在python 3 中ConfigParser模块名已更名为configparser

二、API

读取

read(filename) 直接读取ini文件内容

sections() 得到所有的section,并以列表的形式返回

options(section) 得到该section的所有option

items(section) 得到该section的所有键值对

get(section,option) 得到section中option的值,返回为string类型

getint(section,option) 得到section中option的值,返回为int类型

getfloat(section,option)得到section中option的值,返回为float类型

getboolean(section, option)得到section中option的值,返回为boolean类型
           

写入

add_section(section) 添加一个新的section

has_section(section) 判断是否有section

set( section, option, value) 对section中的option进行设置

remove_setion(section)删除一个section

remove_option(section, option)删除section中的option

write(fileobject)将内容写入配置文件。
           

三、ConfigParser Objects

class configparser.ConfigParser(defaults=None, dict_type=collections.OrderedDict, allow_no_value=False, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section=configparser.DEFAULTSECT, interpolation=BasicInterpolation(), converters={})
           
  1. defaults():返回一个包含实例范围默认值的词典
  2. sections(): 得到所有的section,并以列表的形式返回
  3. add_section(section):添加一个新的section
  4. has_section(section):判断是否有section
  5. options(section) 得到该section的所有option
  6. has_option(section, option):判断如果section和option都存在则返回True否则False
  7. read(filenames, encoding=None):直接读取配置文件内容
  8. read_file(f, source=None):读取配置文件内容,f必须是unicode
  9. read_string(string, source=’’):从字符串解析配置数据
  10. read_dict(dictionary, source=’’)从词典解析配置数据
  11. get(section, option, *, raw=False, vars=None[, fallback]):得到section中option的值,返回为string类型
  12. getint(section,option) 得到section中option的值,返回为int类型
  13. getfloat(section,option)得到section中option的值,返回为float类型
  14. getboolean(section, option)得到section中option的值,返回为boolean类型
  15. items(raw=False, vars=None)和items(section, raw=False, vars=None):列出选项的名称和值
  16. set(section, option, value):对section中的option进行设置
  17. write(fileobject, space_around_delimiters=True):将内容写入配置文件。
  18. remove_option(section, option):从指定section移除option
  19. remove_section(section):移除section
  20. optionxform(option):将输入文件中,或客户端代码传递的option名转化成内部结构使用的形式。默认实现返回option的小写形式;
  21. readfp(fp, filename=None)从文件fp中解析数据

四、RawConfigParser Objects

class configparser.RawConfigParser(defaults=None, dict_type=collections.OrderedDict, allow_no_value=False, *, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section=configparser.DEFAULTSECT[, interpolation])
           

1. add_section(section)

2. set(section, option, value)

五、实例

#coding=utf-8
import configparser

config = configparser.ConfigParser()
fd = open("params.cfg","w+")
config.readfp(fd)

def write_config(value):
    if not config.has_section("params"):
        print("no params section")
        config.add_section("params")

    config.set("params", "outP", str(value[0]))
    config.set("params", "outI", str(value[1]))
    config.set("params", "outD", str(value[2]))
    config.set("params", "inP", str(value[3]))
    config.set("params", "inI", str(value[4]))
    config.set("params", "inD", str(value[5]))

    config.set("params", "altOutP", str(value[6]))
    config.set("params", "altOutI", str(value[7]))
    config.set("params", "altOutD", str(value[8]))
    config.set("params", "altInP", str(value[9]))
    config.set("params", "altInI", str(value[10]))
    config.set("params", "altInD", str(value[11]))

    config.set("params", "throttle",str(value[12]))

    #没有这一句上面的值都不会被写进去
    config.write(fd)

def read_config():
    outP = float(config.get("params", "outP"))
    outI = float(config.get("params", "outI"))
    outD = float(config.get("params", "outD"))
    inP = float(config.get("params", "inP"))
    inI = float(config.get("params", "inI"))
    inD = float(config.get("params", "inD"))

    altOutP = float(config.get("params", "altOutP"))
    altOutI = float(config.get("params", "altOutI"))
    altOutD = float(config.get("params", "altOutD"))
    altInP = float(config.get("params", "altInP"))
    altInI = float(config.get("params", "altInI"))
    altInD = float(config.get("params", "altInD"))

    throttle = int(config.get("params", "throttle"))

    return (outP,outI,outD,inP,inI,inD,altOutP,altOutI,altOutD,altInP,altInI,altInD,throttle)

if __name__ == '__main__':
    write_config((1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,4))
    read_config()