`
desert3
  • 浏览: 2160336 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

ConfigParser读取记事本修改后的配置文件出错问题解决

阅读更多
使用ConfigParser来读取系统配置文件,当把py2exe打包后的代码发布到生产库时,
需要修改配置文件中的数据库连接等相关信息,修改后执行程序,报如下错误:
ConfigParser.MissingSectionHeaderError: File contains no section headers.
file: BaseConfig.cfg, line: 1
'\xef\xbb\xbf#\xe5\x9f\xba\xe6\x9c\xac\xe9\x85\x8d\xe7\xbd\xae\xe4\xbf\xa1\xe6\x81\xaf\n'


调试程序后发现文件头部被追加了信息:\xef\xbb\xbf,然后ConfigParser解析出错
google了下\xef\xbb\xbf,原因:在window下面用记事本编辑文件的时候,如果保存为UNICODE或UTF-8,分别会在文件的开头加上两个字节“\xFF\xFE”和三个字节“\xEF\xBB\xBF”。
参考:BOM--字节序标记

解决方法:配置文件使用前,做全局替换
    content = open('BaseConfig.cfg').read()
    #Window下用记事本打开配置文件并修改保存后,编码为UNICODE或UTF-8的文件的文件头
    #会被相应的加上\xff\xfe(\xff\xfe)或\xef\xbb\xbf,然后再传递给ConfigParser解析的时候会出错
    #,因此解析之前,先替换掉
    content = re.sub(r"\xfe\xff","", content)
    content = re.sub(r"\xff\xfe","", content)
    content = re.sub(r"\xef\xbb\xbf","", content)
    open('BaseConfig.cfg', 'w').write(content)
分享到:
评论
1 楼 hongingr 2013-06-26  
特意登陆上来赞一个,博主造福人类啊~

相关推荐

    Python使用configparser读取ini配置文件

    最后,当对配置文件进行了修改后,我们需要将这些更改保存回文件。这可以通过`write()`方法完成,传入一个打开的文件对象: ```python with open('a.ini', 'w', encoding='utf-8') as f: cf.write(f) ``` 这样,`...

    Python使用configparser库读取配置文件

    总之,`configparser`库是Python中处理配置文件的强大工具,提供了丰富的API用于读取、写入和修改配置数据。通过学习和使用`configparser`,开发者可以更有效地管理应用程序的配置,使代码更加灵活和易于维护。

    JAVA高手解析XML配置文件的读取操作.pdf

    使用 XML 作为配置文件有很多好处,例如可以轻松地更改配置项,而不需要修改代码。 在读取 XML 配置文件时,有多种解析器可以选择,主要有 DOM 和 SAX 两种。DOM 解析器将整个 XML 文件加载到内存中,然后进行解析...

    python读取ini配置文件过程示范

    为了使用configparser,需要先导入模块,创建一个ConfigParser对象,然后通过read方法读取配置文件。以下是一个基本的使用configparser模块的代码示例。 #### 安装configparser模块 在Python 3中,configparser模块...

    Python如何使用ConfigParser读取配置文件

    在项目过程中,需要设置各种IP和端口号信息等,如果每次都在源程序中更改会很麻烦(因为每次都要重启项目重新加载配置信息),因此将需要修改的参数写在配置文件(或者数据库)中,每次只需修改配置文件,就可以实现同样...

    Python实现读取Properties配置文件的方法

    当然,如果你的项目依赖较多的配置文件操作,可能需要考虑使用更高级的库,如`configparser`(Python 3)或`ConfigObj`,它们提供了更多的特性和错误处理机制。不过,对于基本的需求,上述自定义的`Properties`类...

    Java中XML配置文件的读取(sax).doc

    然而,在Java中读取XML配置文件成了一个需要解决的问题。本文将介绍使用SAX解析XML配置文件的方法。 一、XML配置文件的读取 在Java中,读取XML配置文件可以使用多种方法,如DOM、SAX、JDOM等。其中,SAX(Simple ...

    Python3中configparser模块读写ini文件并解析配置的用法详解

    最后,修改后的配置必须通过`write()`方法写回文件,以保存更改: ```python with open('config.ini', 'w') as configfile: config.write(configfile) ``` 总之,`configparser`模块为处理`.ini`配置文件提供了...

    配置文件读取

    3. **读取配置文件**: ```python with open('config_file.ini', 'r') as file: config.read_file(file) ``` 这里假设配置文件名为 `config_file.ini`,并使用 `with` 语句确保文件在读取后被正确关闭。 4. **...

    linux读取配置文件

    在Linux系统中,读取配置文件是日常管理任务的一部分,特别是在使用像MySQL这样的数据库服务时。配置文件通常存储了服务的参数和设置,以便于管理和调整。本篇将详细讲解如何在Linux环境下处理类似“标题”中提到的...

    保存配置文件和读取配置文件

    在IT行业中,保存和读取配置文件是软件开发中的一项基本任务。配置文件通常用于存储应用程序的设置、选项以及变量,使得程序可以根据用户的需求或环境条件进行个性化调整。这一过程对于提升用户体验和软件的可定制性...

    Python configparser模块封装及构造配置文件

    configParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项 2.看一下configparser生成的配置文件的格式 ini配置文件格式如下: 这里是注释 [log] log_...

    读取配置文件获得数字进行计算

    在IT行业中,读取配置文件并获取数字进行计算是一项基础且重要的任务,广泛应用于各种软件系统和应用程序。配置文件通常包含应用的设置、参数或环境信息,这些信息往往是以键值对的形式存储,便于程序在运行时动态...

    python读取配置文件

    在Python编程中,读取配置文件是一个常见的任务,它允许我们分离程序的配置信息,如数据库连接、API密钥或应用程序设置,以便于管理和维护。本文将深入探讨如何使用Python来读取配置文件,主要关注从`.ini`、`.json`...

    使用Java读取XML配置文件

    使用 Java 读取 XML 配置文件 Java 语言和 XML 技术可以说是黄金组合,网上已经有很多文章介绍 XML 在电子商务中的数据交换的作用。但是在平时系统开发中,我们不一定都用到数据交换,是否无法使用 XML?当然不是...

    JAVA读取数据库的XML配置文件

    ### JAVA读取数据库的XML配置文件 #### 前言 在软件开发中,数据库配置信息的管理至关重要。随着技术的发展,出现了许多优秀的框架来帮助开发者处理这些任务,例如Hibernate等ORM(对象关系映射)工具,它们简化了...

    详解Python读取配置文件模块ConfigParser

    修改后,需调用`write()`方法将更改写入文件。 4. **处理特殊情况** 当配置文件中的部分不包含标准的键值对,而是仅包含单独的值时,如示例中的IP地址列表,`ConfigParser`会抛出`ParsingError`。为解决这个问题...

Global site tag (gtag.js) - Google Analytics