`
desert3
  • 浏览: 2139949 次
  • 性别: 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配置文件

    主要介绍了Python使用configparser读取ini配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

    Python使用configparser库读取配置文件

    主要介绍了Python使用configparser库读取配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

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

    主要介绍了Python3中configparser模块读写ini文件并解析配置的用法详解,需要的朋友可以参考下

    Java_Properties_类读取配置文件信息

    通常我们的做法是用配置文件来解决。 各种语言都有自己所支持的配置文件类型。比如Python ,他支持.ini 文件。因为他内部有一个ConfigParser 类来支持.ini 文件的读写,根据该类提供的方法程序员可以自由的来操作....

    python configparser类获取.ini文件配置内容

    python configparser类获取.ini文件配置内容

    go-configparser:Go 的配置文件解析器库

    go-configparser需要以下格式的配置文件: [section heading] option1 = value1 option2 = value2 所有其他行都将被忽略 - 部分中未找到的任何选项也将被忽略。 参见示例/basic.cfg。 插值 可以使用以下格式...

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

    本篇文章主要介绍了详解Python读取配置文件模块ConfigParser,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Python配置文件解析模块ConfigParser使用实例

    ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。 复制代码 代码如下:  [db]  db_host = 127.0.0.1  db_port = 22  db_...

    Python使用自带的ConfigParser模块读写ini配置文件

    Python自带有读取配置文件的模块ConfigParser,使用起来非常方便。 ini文件 ini配置文件格式: 读取配置文件: import ConfigParser conf = ConfigParser.ConfigParser() conf.read('dbconf.ini') # 文件路径 ...

    python3.6的配置文件写入时保留注释

    python3.6,对其配置文件的读写进行了修改,目的是在设置值(会导致写文件)时,对原始文件中的注释进行保留。由于是对原工具中代码的修改,所以建议在使用此文件进行覆盖之前,先对原文件进行备份,防止在一些极端...

    Python自动化测试ConfigParser模块读写配置文件

    本文主要介绍Python自动化测试,这里详细说明了ConfigParser模块读写配置文件,有兴趣的小伙伴可以参考下

    Python使用ConfigParser模块操作配置文件的方法

    主要介绍了Python使用ConfigParser模块操作配置文件的方法,结合实例形式分析了Python基于ConfigParser模块针对配置文件的创建、读取、写入、判断等相关操作技巧,需要的朋友可以参考下

    python3配置文件

    python3的HTMLTestRunner文件python3的HTMLTestRunner文件

    dnxbjyj#jianshu-blog#用ConfigParser模块读写conf配置文件1

    修改某个配置项的值比如要修改一下数据库的密码,可以这样修改:修改完了要写入才能生效添加一个section同样的,要写入才能生效执行上面代码后,sys.conf文

    Python configparser模块常用方法解析

    ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section), 每个节可以有多个参数(键=值)。使用的配置文件的好处就是不用在程序员写死,可以使...

Global site tag (gtag.js) - Google Analytics