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

运行环境: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下是没有的。

时间: 2024-10-16 09:27:48

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

使用configparser读取带有中文的配置文件出现UnicodeDecodeError错误

问题: 使用configparser读取配置文件时,出现UnicodeDecodeError错误,在没有任何中文的时候读取可以的,加了1句中文注释后就抛出异常,异常如下: UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multib 解决方法 注意 对于有BOM(如Windows下用记事本指定为utf-8)的文件,需要使用 utf-8-sig,即把encoding=utf-8 改为 e

接口测试中读取excel中的请求数据含有中文问题,UnicodeEncodeError: 'latin-1' codec can't encode character '\u5c0f' in position

错误信息:UnicodeEncodeError: 'latin-1' codec can't encode character '\u5c0f' in position 31: Body ('小') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8的错误 原因:从excel中读取你的接口请求数据时带有中文时在发送求情时会出现上述错误.只需要将请求数据转化为bytes类型即可

Go语言Eclipse开发环境配置-windows

1.首先安装eclipse,选择一个适合的版本就好,解压即可 http://www.eclipse.org/downloads/ 2.下载go语言安装包 官网地址 :http://www.golang.org/ 官网地址有时候打不开,百度云盘下载go1.2安装包  http://pan.baidu.com/s/1c0Gf4UO#dir/path=%2FSoft%2FGoLang  32 64位都有 一路Next cmd输入go version 看到这个就安装好了,环境变量什么的会自动配置好的,唯

cacti中文安装配置与监控wWindows Server和Linux服务器

Cacti做为当今天运维人员的主流监控工具已经应该很广泛了,下面我就来把我的安装步骤罗列如下; (1).Cacti安装之前要准备Linx平台下的Web架构: (2).Linux下的Web搭建的方法如下; [[email protected] ~]# yum -y install httpd mysql-server php php-mysql gd net-snmp php-snmp net-       snmp-utils net-snmp-devel mysql-devel  openss

solr 4.8+mysql数据库数据导入 + mmseg4j中文全文索引 配置笔记

1.如何将solr部署,请参考之前的文章 2.按上述配置好后,在solr_home文件夹中,将包含collection1文件夹,这就是solr的一个实例.下面我们来看看collection1中的文件内容. collection1中包含conf和data两个子文件夹.data中包含tlog和index(如果没有也没关系,稍后再solr建立索引时,将会被创建).tlog是记录日志的文件夹,index是存放索引的文件夹.conf中包含lang文件夹和若干文件.lang文件夹中包含的是词库文件,但是so

[Android]开发环境配置(windows)-draft

一. 下载Android SDK,把SDK放到任意你想放的位置(这个东西将来有可能会更大) 二. 配置windows系统环境变量 新建ANDROID_SDK_HOME,值:任何你想放置Android模拟器的路径 新建随便什么名(假设为ANDROID_SDK),值:SDK的路径(假设sdk的文件夹叫android-sdk-windows,在d盘,那就写 D:\android-sdk-windows) 在Path里添加 %ANDROID_SDK%\tools;%ANDROID_SDK%\platfo

java处理含有中文的字符串.

1. 问题描述: 原始数据是以行为单位的, 每行固定长度931个字节, 汉字占2个字节, 按照字典描述,共有96个字典,只有第32个字典为中文地址, 所以需要单独处理. 由于项目设计保密,故删除敏感数据. 供实验的数据是测试数据. 在处理过程中,按照规定的字典长度截取字符串的时候,发现处理到汉字的时候出错. 那就需要单独处理汉字. 比较麻烦. 所以写了如下简便方法, 如有更好的解决方案,还请多多交流. 如何计算含有中文的字符串长度. 2. 解决方案: 源码: package com.dk.rf;

python的ConfigParser读取设置配置文件

python 读写配置文件在实际应用中具有十分强大的功能,在实际的操作中也有相当简捷的操作方案,以下的文章就是对python 读写配置文件的具体方案的介绍,望你浏览完下面的文章会有所收获. python 读写配置文件ConfigParser模块是python自带的读取配置文件的模块.通过他可以方便的读取配置文件. 这篇文章简单介绍一下python 读写配置文件的方法. 配置文件.顾名思议就是存放配置的文件.下面是个例子 点击(此处)折叠或打开 [info] age = 21 name = che

InterliJ Idea 设置,解决读取配置文件中文乱码问题

InterliJ Idea 设置,解决读取配置文件中文乱码问题,简单粗暴有效 勾选最下面那个钩钩,这样在配置文件里写入中文的时候,实际保存的时候是经过转码的,这种方式能够兼容所有平台,包括Mac.windows .Linux