解决报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0x8c in position 19: illegal multibyte sequence
时间: 2023-07-22 22:59:14 浏览: 169
这个错误是由于文件的编码方式导致的。你可以尝试使用其他编码方式打开文件,比如'utf-8'或者'gb18030',看看是否能够解决该问题。
修改代码如下:
```python
def import_courses_from_file(file_name):
course_info = []
with open(file_name, 'r', encoding='utf-8', errors='ignore') as file:
for line in file:
data = line.strip().split(',')
if len(data) >= 4:
course_info.append({'课程编号': data[0], '课程名称': data[1], '课程学分': data[2], '上课时间': data[3]})
else:
print("错误:行数据不完整,跳过该行")
return course_info
course_info = import_courses_from_file(r"C:\Users\Lenovo\Desktop\文件导入学生信息.txt")
print(course_info)
```
在打开文件时,我们加入了`errors='ignore'`参数,用于忽略无法解码的字符。这样处理后,即使有非法字符存在,也不会抛出UnicodeDecodeError错误。但请注意,这样处理可能会导致部分字符丢失或替换。如果需要保留所有字符,请确保文件的编码方式正确,并与`encoding`参数一致。
阅读全文