当前位置:   article > 正文

python ini文件包含中文时报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x8c 的解决办法_python 读取ini 文件里面有中文

python 读取ini 文件里面有中文

一、前置说明

比如你想在pytest.ini文本中使用中文做一些注释说明:

[pytest]
# 在运行 Pytest 时的一些额外选项
# -v 表示详细输出,显示更详细的测试结果
# -s 表示在控制台输出标准输出(print 语句)
addopts = -v -s

# log_cli = 1 表示启用在控制台输出日志,1 表示启用,0 表示禁用
log_cli = 1

# log_cli_level = DEBUG 表示在控制台输出的日志的级别为 DEBUG
log_cli_level = DEBUG

# log_cli_format 定义了在控制台输出的日志的格式
# %(asctime)s 表示日志的时间戳
# %(filename)s 表示产生日志的文件名
# %(lineno)d 表示产生日志的代码行号
# %(funcName)s 表示产生日志的函数名
# %(levelname)s 表示日志的级别(例如,INFO、DEBUG、ERROR)
# %(message)s 表示实际的日志消息
log_cli_format = %(asctime)s - %(filename)s:%(lineno)d - %(funcName)s - %(levelname)s - %(message)s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

但是运行时,会提示:

UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x8c in position 20: illegal multibyte sequence

二、解决办法

问题原因:IniConfig类解析文件时没有指定encoding='utf-8'。解决办法就是在错误日志中点击连接跳转至iniconfig的__init__.py文件,将f = open(self.path)修改为f = open(self.path, encoding='utf-8')

选择强制修改,然后重启IDE即可。

欢迎技术交流:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/151125
推荐阅读
相关标签
  

闽ICP备14008679号