码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-03-09 00:37:14      阅读:474      评论:0      收藏:0      [点我收藏+]

标签:

运行环境:Windows7.1

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

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

[test]
a = 中文

Python3下面的代码:

# -*- coding:utf-8 -*-
import configparser
config = configparser.ConfigParser()
config.read(‘test.cfg.txt‘,encoding="utf-8-sig") #,encoding="utf-8"

print ( config[‘test‘][‘a‘])

Python2 下面的代码:

# -*- coding:utf-8 -*-
import ConfigParser
import codecs
config = ConfigParser.ConfigParser()
with codecs.open(‘test.cfg.txt‘, encoding="utf-8-sig" ) as f:
  config.readfp(f) 
  print ( config.get("test", "a"))

使用utf-8的错误:

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

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



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

标签:

原文地址:http://my.oschina.net/cppblog/blog/384099

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!