关于 Python3.7 ConfigParser 模块写入时删除注释的问题的临时解决方案

注:作者编程小白,高手勿喷,如有疏漏,还请指正!

因业余爱好需要,发现现有的 ConfigParser 模块在写入数据时会删除注释,不利于配置文件对于用户而言的可读性,网上找了一圈,看得云里雾里,所以尝试自己在不通过修改源文件(也没这能力)的情况下,来临时解决一下问题。

例,原 test.ini 文件内容如下

[sect1]
# cmt 1.1
opt1 = 1
# cmt 1.2
opt2 = 2
# cmt 1.3
opt3 = 0

[sect2]
# cmt 2.1
opt1 = 3
# cmt 2.2
opt2 = 4

直接使用 ConfigParser 更改 opt3 的值为 33,python 代码如下

from configparser import ConfigParser

cfg = ConfigParser()
cfg.read("test.ini", encoding = "utf-8")
cfg.set("sect1", "opt3", "33")
with open("test.ini", "w+") as f:
	cfg.write(f)
f.close()

运行结果如下,可以看到原有的 comment 都丢失了,

[sect1]
opt1 = 1
opt2 = 2
opt3 = 33

[sect2]
opt1 = 3
opt2 = 4

临时的解决方案如下,但很显然存在诸多问题,目前只能覆盖修改存在 section / option 对应 value 的场景,待后续深入研究再想办法解决(貌似理论上无解啊,新增/删除怎么搞?)


                
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值