对整个configparser研究了一次,除了初始化没去细究,因为感觉没啥用
python写出来的ini有空格,是不符合标准的
另外python支持%(变量名)s的语法,据我所知也是不符合标准的
如果要让ini文件通用,建议不要用python操作
常用方法都在下方了

# !/usr/bin/env python
# -*-coding:utf-8 -*-

"""
@File       : ini_reader.py
@Time       :2022/10/31 下午12:02
@author     :umbrella
@email      : 2260334995@qq.com
@version    :python 3.8
@Description:
"""
import configparser

# {True: ['1', 'yes', 'true', 'on'], False: ['0', 'no', 'false', 'off']}
ini_reader = configparser.ConfigParser()

# 执行后,init可以使用字典的形式访问,类似于{"section": {"option": "val"}},但是如果遇到%()s的,会报错
# 对于固定的ini,可以直接字典操作,而对于不是的,则要用下方的方式
ini_reader.read('save.ini')

# 增加section,类方法
# if not ini_reader.has_section('test'):
#     ini_reader.add_section('test')

# 字段方式
if 'test' not in ini_reader:
    ini_reader['test'] = {}

# 设置值,只更新内存,并不会写入文件,可以重复更新
# 需要section存在,option可以不存在
ini_reader.set(section='test', option='type', value='100%(aa)s')

# print(ini_reader['test']['type'])

# 获取所有keys
print(ini_reader.sections())

# 获取keys下的value,fallback为默认值或者报错
# rows: 如果为False,读出来的str会被替换,
#     ini格式为%(xxx)s, s是字符串的意思,只支持s
#     vars格式为{"xxx": "???"}
print(ini_reader.get('test', 'type', raw=False, vars={"aa": "222"}, fallback=None))

# 返回某个sections下的所有数据
print(ini_reader.items('test', raw=False, vars={"aa": "222"}))

# 返回_defaults,大概是默认值清单,init时设置的
print(ini_reader.defaults())

# 是否存在一些配置
# print(ini_reader.has_section('character2'))
# print(ini_reader.has_option('character', 'type'))

# 返回某个section下的option列表
print(ini_reader.options(section='test'))

# 从字典读取成为ini对象,{str: {str: any}},还有read_str
ini_reader.read_dict(dictionary={"character": {"type": 2, "hp": 100}})

# 删除一些值
# ini_reader.remove_option('character', 'hp')
# ini_reader.remove_section('character')

# 保存
with open('save.ini', 'w') as f:
    ini_reader.write(f)

原文地址:http://www.cnblogs.com/zaxl932946/p/16845136.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性