使用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)
分享到:
相关推荐
最后,当对配置文件进行了修改后,我们需要将这些更改保存回文件。这可以通过`write()`方法完成,传入一个打开的文件对象: ```python with open('a.ini', 'w', encoding='utf-8') as f: cf.write(f) ``` 这样,`...
总之,`configparser`库是Python中处理配置文件的强大工具,提供了丰富的API用于读取、写入和修改配置数据。通过学习和使用`configparser`,开发者可以更有效地管理应用程序的配置,使代码更加灵活和易于维护。
使用 XML 作为配置文件有很多好处,例如可以轻松地更改配置项,而不需要修改代码。 在读取 XML 配置文件时,有多种解析器可以选择,主要有 DOM 和 SAX 两种。DOM 解析器将整个 XML 文件加载到内存中,然后进行解析...
为了使用configparser,需要先导入模块,创建一个ConfigParser对象,然后通过read方法读取配置文件。以下是一个基本的使用configparser模块的代码示例。 #### 安装configparser模块 在Python 3中,configparser模块...
在项目过程中,需要设置各种IP和端口号信息等,如果每次都在源程序中更改会很麻烦(因为每次都要重启项目重新加载配置信息),因此将需要修改的参数写在配置文件(或者数据库)中,每次只需修改配置文件,就可以实现同样...
当然,如果你的项目依赖较多的配置文件操作,可能需要考虑使用更高级的库,如`configparser`(Python 3)或`ConfigObj`,它们提供了更多的特性和错误处理机制。不过,对于基本的需求,上述自定义的`Properties`类...
然而,在Java中读取XML配置文件成了一个需要解决的问题。本文将介绍使用SAX解析XML配置文件的方法。 一、XML配置文件的读取 在Java中,读取XML配置文件可以使用多种方法,如DOM、SAX、JDOM等。其中,SAX(Simple ...
最后,修改后的配置必须通过`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系统中,读取配置文件是日常管理任务的一部分,特别是在使用像MySQL这样的数据库服务时。配置文件通常存储了服务的参数和设置,以便于管理和调整。本篇将详细讲解如何在Linux环境下处理类似“标题”中提到的...
在IT行业中,保存和读取配置文件是软件开发中的一项基本任务。配置文件通常用于存储应用程序的设置、选项以及变量,使得程序可以根据用户的需求或环境条件进行个性化调整。这一过程对于提升用户体验和软件的可定制性...
configParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项 2.看一下configparser生成的配置文件的格式 ini配置文件格式如下: 这里是注释 [log] log_...
在IT行业中,读取配置文件并获取数字进行计算是一项基础且重要的任务,广泛应用于各种软件系统和应用程序。配置文件通常包含应用的设置、参数或环境信息,这些信息往往是以键值对的形式存储,便于程序在运行时动态...
在Python编程中,读取配置文件是一个常见的任务,它允许我们分离程序的配置信息,如数据库连接、API密钥或应用程序设置,以便于管理和维护。本文将深入探讨如何使用Python来读取配置文件,主要关注从`.ini`、`.json`...
使用 Java 读取 XML 配置文件 Java 语言和 XML 技术可以说是黄金组合,网上已经有很多文章介绍 XML 在电子商务中的数据交换的作用。但是在平时系统开发中,我们不一定都用到数据交换,是否无法使用 XML?当然不是...
### JAVA读取数据库的XML配置文件 #### 前言 在软件开发中,数据库配置信息的管理至关重要。随着技术的发展,出现了许多优秀的框架来帮助开发者处理这些任务,例如Hibernate等ORM(对象关系映射)工具,它们简化了...
修改后,需调用`write()`方法将更改写入文件。 4. **处理特殊情况** 当配置文件中的部分不包含标准的键值对,而是仅包含单独的值时,如示例中的IP地址列表,`ConfigParser`会抛出`ParsingError`。为解决这个问题...