UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf

来源:2-19 如何读取配置文件low代码

慕勒5311868

2022-02-16

# -*- coding:utf-8 -*-
#@Time  :2022/2/14 15:55
#@Author:miaow
#@File  :read_ini.py

import configparser
class ReadIni(object):
    def __init__(self,file_name=None,node=None):
        if file_name==None:
            file_name= "D:/my_own/selenium/config/LocalElement.ini"
        if node==None:
            self.node="RegisterElement"
        else:
            self.node=node
        self.cf=self.load_ini(file_name)
    #加载文件
    def load_ini(self,file_name):
        cf = configparser.ConfigParser()
        cf.read(file_name)
        return cf#因为其他地方需要用到cf,所以返回过去
    #获取value值
    def get_value(self,key):
        data=self.cf.get(self.node, key)
        return data
#做下测试
if __name__=="__main__":
    read_init=ReadIni()
    print(read_init.get_value("user_name"))
#注册页面的元素信息,配置文件最好用ini作为文件尾
# -*- coding:utf-8 -*-
[RegisterElement]
user_email=id>register_email
user_email_error=id>register_email-error
user_name=id>register_nickname
user_name_error=id>register_nickname-error
password=id>register_password
password_error=id>register_password-error
code_image=id>getcode_num
code_text=id>captcha_code
code_text_error=id>captcha_code-error
register_button=id>register-btn
D:\Python36-64_install_location\python.exe D:/my_own/selenium/util/read_ini.py
Traceback (most recent call last):
  File "D:/my_own/selenium/util/read_ini.py", line 27, in <module>
    read_init=ReadIni().encode("utf-8")
  File "D:/my_own/selenium/util/read_ini.py", line 15, in __init__
    self.cf=self.load_ini(file_name)
  File "D:/my_own/selenium/util/read_ini.py", line 19, in load_ini
    cf.read(file_name)
  File "D:\Python36-64_install_location\lib\configparser.py", line 696, in read
    self._read(fp, filename)
  File "D:\Python36-64_install_location\lib\configparser.py", line 1012, in _read
    for lineno, line in enumerate(fp, start=1):
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 27: illegal multibyte sequence

Process finished with exit code 1

写回答

1回答

Mushishi

2022-02-17

conf.read("test.ini", encoding="utf-8-sig")

读取的时候增加编码


1
0

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1884 学习 · 1093 问题

查看课程