参考:configparser官网
ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。
注意:在python 3 中ConfigParser模块名已更名为configparser
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)将内容写入配置文件。
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={})
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()