def import_courses_from_file(file_name): with open(file_name, 'r',encoding='utf-8') 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("错误:行数据不完整,跳过该行") print(course_info) import_students_from_file(r"C:\Users\Lenovo\Desktop\文件导入学生信息.txt" json格式保存正确但信息导入失败,修改此代码
时间: 2024-04-20 14:23:34 浏览: 77
def import_courses_from_file(file_name):
course_info = []
with open(file_name, 'r', encoding='utf-8') 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)
相关问题
解决报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0x8c in position 19: illegal multibyte sequence
这个错误是由于文件的编码方式导致的。你可以尝试使用其他编码方式打开文件,比如'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`参数一致。
阅读全文