使用ConfigParser来读取配置文件,经常会发现经过记事本、notepad++修改后的配置文件读取时出现下面的问题:

ConfigParser.MissingSectionHeaderError: File contains no section headers.
file: ../conf/mal_crawler_allcids.conf, line: 1
'\xef\xbb\xbf[basic_config]\r\n'

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

解决方法:配置文件使用前,去掉这些BOM字节

def remove_BOM(config_path):
  content = open(config_path).read()
  content = re.sub(r"\xfe\xff","", content)
  content = re.sub(r"\xff\xfe","", content)
  content = re.sub(r"\xef\xbb\xbf","", content)
  open(config_path, 'w').write(content)

是不是这个问题,请拿走不谢。

最新文章

  1. Codeforces Round #384 (Div. 2) E
  2. 【9-7】XML学习笔记01
  3. starUML 建模
  4. 合工大OJ 1330 种树
  5. Struts-1和2的比较
  6. Solaris下怎样改动文件创建时间及查询
  7. linux环境开发私房菜
  8. 【Demo 0006】Android 组件(Activity)
  9. react 各种UI框架
  10. 纹理混合遇到的问题 pre-multiplying OpenGL Android iOS
  11. Intel Core Microarchitecture Pipeline
  12. typedef struct 的用法
  13. js 数组 remove
  14. 不使用接口的 limit 控制分页的容量
  15. oracle 中如何查看某个表所涉及的存储过程
  16. jemter模拟高并发访问(亲测ok)
  17. centos7改中文
  18. 【jdbcTemplate】baseDao书写规范
  19. UVALive 6176 Faulhaber's Triangle
  20. 关于Struts2开发过程中遇到的问题和解决方案

热门文章

  1. 用html+css+js实现一个无限级树形控件
  2. rdd的元素打印
  3. pycharm调用shell命令
  4. php注册自动加载函数
  5. laravel构建联合查询
  6. 【Leetcode_easy】821. Shortest Distance to a Character
  7. 用BERT做语义相似度匹配任务:计算相似度的方式
  8. 从零开始学游戏开发(一):下载与安装UE4游戏引擎
  9. 微信公众号 微信连wifi最全的教程
  10. Appium 基于控件左滑操作