首页 > 编程语言 >python 修改ini文件参数,保留ini文件注释的方法--未测试

python 修改ini文件参数,保留ini文件注释的方法--未测试

时间:2023-12-29 13:56:29浏览次数:40  
标签:fp 文件 python write 注释 ini INI

使用configparser模块的write()方法在写入INI文件时默认会删除注释。要保留注释,您可以使用自定义的格式化器来处理INI文件的内容,并在写入文件时手动添加注释。

下面是一个示例代码,演示如何自定义一个格式化器,并在写入INI文件时保留注释:

python复制代码
import configparser  
  
class CommentedConfigParser(configparser.ConfigParser):  
    def write(self, fp):  
        """Write an .ini-format representation of the configuration state."""  
        if self._defaults:  
            fp.write("[%s]\n" % DEFAULTSECT)  
            for (key, value) in self._defaults.items():  
                fp.write("%s = %s\n" % (key, str(value).replace('\n', '\n\t')))  
            fp.write("\n")  
        for section in self._sections:  
            fp.write("[%s]\n" % section)  
            for (key, value) in self._sections[section].items():  
                if key == "__comment__":  
                    fp.write("# %s\n" % value)  
                else:  
                    fp.write("%s = %s\n" % (key, str(value).replace('\n', '\n\t')))  
            fp.write("\n")  
  
# 读取INI文件  
config = CommentedConfigParser()  
config.read('example.ini')  
  
# 修改参数值  
config.set('SectionName', 'ParameterName', 'NewValue')  
  
# 写入INI文件,保留注释  
with open('example.ini', 'w') as configfile:  
    config.write(configfile)

 

 

在上面的代码中,我们创建了一个继承自configparser.ConfigParser的自定义类CommentedConfigParser。在这个类中,我们重写了write()方法,将默认值和节点的注释以特定的格式写入文件。在写入文件时,我们手动添加了注释,以便保留原始的注释内容。

使用自定义的格式化器后,您可以使用相同的代码来读取、修改和写入INI文件,并保留注释。请注意,此方法仅适用于标准格式的INI文件,并且假设注释是以"#"开头的行。如果您的INI文件使用不同的注释语法,您可能需要进行适当的调整

标签:fp,文件,python,write,注释,ini,INI
From: https://www.cnblogs.com/mmld/p/17934711.html

相关文章

  • swift icloud 存储文件
     importUIKit///文件下载classVehicleDownloadFilemanager:NSObject,UIDocumentPickerDelegate{///创建单例对象staticletshare=VehicleDownloadFilemanager()privateoverrideinit(){}funcdownloadFile(fileUrl:String?){......
  • 前端使用a标签下载非同源文件(备选方案)
    原理:下载文件Blob,再把Blob转为本地链接,以实现跨域变同域,最后使用a标签实现下载;优缺点:●优点:能达到下载跨域文件的目的;●缺点:不适用于大文件,大文件体验较差;示例:使用fetch把文件下载下来,然后URL.createObjectURL转为本地链接,最后使用a标签下载;/***跨域文件下载......
  • [python] 基于Dataset库操作数据库
    dataset库是Python中一个用于操作数据库的简单库,它提供了一种简洁的方式与各种关系型数据库进行交互,例如SQLite、MySQL、PostgreSQL等。你可以使用dataset库来执行查询、插入、更新和删除操作,而无需编写复杂的SQL语句。dataset库适用于小规模的数据存储和查询场景,相比csv和json文......
  • python 有效的括号 多种解法
    解法一:使用栈思路:创建一个空栈。遍历输入字符串的每个字符。如果字符是左括号('(','{','['),则将其推入栈中。如果字符是右括号(')','}',']'),则检查栈是否为空。如果栈为空,则返回False,因为没有与之匹配的左括号。如果栈不为空,则弹出栈顶元素,并判断它与当前右括号是否匹配。如果不匹......
  • python_使用selenium进行webui测试的浏览器驱动安装步骤
    以chrome浏览器为例。(前提是:python和pycharm安装成功,且能正常运行)1、查看chrome浏览器的版本方式一:打开Chrome浏览器。在浏览器右上角,点击三个点的图标。在弹出的菜单中,选择“设置”。在设置页面中,滚动到底部,点击“关于Chrome”。在关于Chrome页面中,你可以看到C......
  • Linux系统日志文件介绍
    Linux系统文件通常在/var/log中下面,主要有以下日志:/var/log/message---------------------------------------系统启动后的信息和错误日志/var/log/secure------------------------------------------与安全相关的日志信息/var/log/maillog-------------------------------......
  • 【北亚服务器数据恢复】san环境下LUN Mapping出错导致文件系统一致性出错的数据恢复案
     服务器数据恢复环境:san环境下的存储上一组由6块硬盘组建的RAID6,划分为若干LUN,MAP到跑不同业务的服务器上,服务器上层是SOLARIS操作系统+UFS文件系统。服务器故障:业务需求需要增加一台服务器跑新增的应用,工作人员在原服务器在线的状态下将其中一个lun映射到一台新服务器上。实际......
  • Nginx reload重新加载配置文件的异常情况
    Nginxreload重新加载配置文件的异常情况背景临近年底,很多业务工作量都上来了.今天同事告知,nginx的log里面出现了大量的toomanyopenfiles的提示信息.并且同事明确说明,已经修改了/etc/secuirty/limits.conf以及worker_connections这两个参数.并且已经第一时......
  • Python绘画-红太狼是怎样炼成的
    红太狼简介红太狼是狼堡的持有人,出身富裕世家,傲娇暴力女,虽然身为大小姐,但是懂得料理和家务。因为要独自照顾老公灰太狼,所以平时都摆出一副家主的气势。表面上经常用平底锅砸灰太狼,也抱怨灰太狼不如其他狼(尤其是初恋情人小白狼)混得好,但内心其实是很爱灰太狼的,常常安慰在羊村战役中......
  • 关于IDEA报 java: 无法访问java.lang.Record 找不到java.lang.Record的类文件
    IDEA一直报java:无法访问java.lang.Record  找不到java.lang.Record的类文件,但是我已经把所有的java配置改成了17。最后发现是pom文件中org.apache.maven.plugins配置没有改。属性修改如下:<configuration><compilerVersion>1.8</compilerVersion>-......