python配置文件读写(ConfigParse)

1. 配置文件(config.ini)

ini文件格式:

[section0] 
key0 = value0
key1 = value1
[section1]
key2 = value2
key3 = value

示例

[config]
NUM = 40
COLUMN = 8
CREATE_SIZE_X = 400
CREATE_SIZE_Y = 300

[color]
# 深蓝
DARK_BLUE =rgba(1,77,103,255)
# 浅蓝
LIGHT_BLUE = rgba(96,143,159,255)
# 亮黄
LUMINOUS_YELLOW = rgba(251,178,23,255)
# 浅黄
LIGHT_YELLOW = rgba(237,222,139,255)
  • 注意ini文件不支持行间注释,可用 ; 或 # 在行首注释

2. 读取配置文件

在python文件中读取config.ini参数

# coding:utf-8
import configparser   # python3以后的安装包改为小写
config = configparser.ConfigParser()
config.read("../config.ini", encoding='utf-8')
print(config.sections())         # 打印所有section
print(config.options("color"))		# 打印[color]这个section里面所有options
print (config.items("color"))		# 打印[color]这个section里面所有键值对
print (config.get("color", "DARK_BLUE"))
print (config.getint("config", "NUM"))
for sections in config.sections():
    for items in config.items(sections):
        #打印单独键值对
        print (items)

打印结果:

['config', 'color', 'db', 'screw', 'mode']
['background_color', 'light_blue', 'purplish_blue', 'dark_blue', 'luminous_yellow', 'light_yellow', 'light_grey', 'grey', 'grey_80', 'grey_60', 'grey_40', 'grey_20', 'grey_10', 'black', 'black_80', 'black_60', 'black_40', 'black_20', 'black_10', 'red', 'red_80', 'red_60', 'red_40', 'red_20', 'red_10']
[('background_color', 'rgba(134,145,153,255)'), ('light_blue', 'rgba(96,143,159,255)'), ('purplish_blue', 'rgba(3,38,58,255)'), ('dark_blue', 'rgba(20,68,106,255)'), ('luminous_yellow', 'rgba(222,125,44,255)'), ('light_yellow', 'rgba(250,218,141,255)'), ('light_grey', 'rgba(179,168,150,255)'), ('grey', 'rgba(134,145,153,255)'), ('grey_80', 'rgba(157,167,175,255)'), ('grey_60', 'rgba(181,198,196,255)'), ('grey_40', 'rgba(205,211,216,255)'), ('grey_20', 'rgba(229,233,235,255)'), ('grey_10', 'rgba(242,244,245,255)'), ('black', 'rgba(0,0,0,255)'), ('black_80', 'rgba(87,87,87,255)'), ('black_60', 'rgba(134,134,133,255)'), ('black_40', 'rgba(176,177,177,255)'), ('black_20', 'rgba(217,217,217,255)'), ('black_10', 'rgba(236,236,236,255)'), ('red', 'rgba(185,0,15,255)'), ('red_80', 'rgba(197,51,63,255)'), ('red_60', 'rgba(211,102,111,255)'), ('red_40', 'rgba(226,153,159,255)'), ('red_20', 'rgba(240,204,207,255)'), ('red_10', 'rgba(248,230,231,255)')]
rgba(20,68,106,255)
40
('num', '40')
('column', '8')
('create_size_x', '400')
('create_size_y', '300')
('background_color', 'rgba(134,145,153,255)')
('light_blue', 'rgba(96,143,159,255)')
('purplish_blue', 'rgba(3,38,58,255)')
('dark_blue', 'rgba(20,68,106,255)')
('luminous_yellow', 'rgba(222,125,44,255)')
('light_yellow', 'rgba(250,218,141,255)')

3. 写入配置文件

#coding:utf-8
import configparser
config = configparser.ConfigParser()
config.read("../config.ini", encoding='utf-8')
if "mode" not in config.sections():
	config.add_section("mode") # 增加一个section
config.set("mode", "flag", "true") # 增加一条数据
with open("../config.ini","w+") as f:
    config.write(f)

配置文件加入结果

[config]
NUM = 40
COLUMN = 8
CREATE_SIZE_X = 400
CREATE_SIZE_Y = 300

[color]
# 深蓝
DARK_BLUE =rgba(1,77,103,255)
# 浅蓝
LIGHT_BLUE = rgba(96,143,159,255)
# 亮黄
LUMINOUS_YELLOW = rgba(251,178,23,255)
# 浅黄
LIGHT_YELLOW = rgba(237,222,139,255)

[mode]
flag = true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
纯cini配置文件 用c/c++ini配置文件有不少第三方的开源库,如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代码较大、功能较弱、 接口使用不方便。尤其在大小处理、前后空格、各种注释、跨平台换行符支持、带引号字符串处理、无section操作、原格式保持等方面存在问题。 现将本人精心制作的ini程序源码奉献给大家,纯c编,简洁好用。支持windows和linux。 主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。 4、支持10、16、8进制数,0x开头为16进制数,0开头为8进制。 5、支持section、key或=号前后带空格。 6、支持\n、\r、\r\n或\n\r换行格式。 7、不区分section、key大小,但入时以新串为准,并保持其大小。 8、新增数据时,若section存在则在该节最后一个有效数据后添加,否则在文件尾部添加。 9、支持指定key所在整行删除,即删除该键值,包括注释。 10、可自动跳过格式错误行,修改时仍然保留。 11、修改时保留原注释:包括整行注释、行尾注释(包括前面空格)。 12、修改时保留原空行。以上三点主要是尽量保留原格式。 不足之处: 1、不支持单key多value(逗号分割),只能一次性提取后自行处理。 2、不支持同名重复section和key。(重复section可视为错误,重复key则可能造成分歧) 3、不能提取所有section或key名称。 使用只需两个文件inirw.h、inirw.c,另有测试程序和工程文件,支持windows和linux。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值