• configparser读取含有中文的配置(Windows) configparser.MissingSectionHeaderError: File contains no section headers. file: 'test.cfg', line: 1 'ufeff[test] '------------转载


    configparser读取含有中文的配置(Windows)

    运行环境:Windows7.1

    在 Python 3 中虽有encoding 参数,但是对于有BOM(如Windows下用记事本指定为utf-8)的文件,需要使用 utf-8-sig, 使用utf-8就没戏.

    配置文件 (utf-8格式,带BOM)

    1.  
      [test]
    2.  
      a = 中文

    Python3下面的代码:

    1.  
      # -*- coding:utf-8 -*-
    2.  
      import configparser
    3.  
      config = configparser.ConfigParser()
    4.  
      config.read('test.cfg.txt',encoding="utf-8-sig") #,encoding="utf-8"
    5.  
       
    6.  
      print ( config['test']['a'])

    Python2 下面的代码:

    1.  
      # -*- coding:utf-8 -*-
    2.  
      import ConfigParser
    3.  
      import codecs
    4.  
      config = ConfigParser.ConfigParser()
    5.  
      with codecs.open('test.cfg.txt', encoding="utf-8-sig" ) as f:
    6.  
        config.readfp(f) 
    7.  
        print ( config.get("test", "a"))

    使用utf-8的错误:

    configparser.MissingSectionHeaderError: File contains no section headers.
    file: 'test.cfg', line: 1
    'ufeff[test] '

    这个问题在Linux下是没有的。

     

    转载于:https://my.oschina.net/cppblog/blog/384099

  • 相关阅读:
    Dungeon Game 解答
    Gray Code 解答
    N-Queens II 解答
    N-Queens 解答
    Permutation Sequence 解答
    Generate Parentheses 解答
    Letter Combinations of a Phone Number 解答
    Permutations 解答
    Combination Sum II 解答
    134. Gas Station
  • 原文地址:https://www.cnblogs.com/lnn123/p/13522091.html
Copyright © 2020-2023  润新知