我正在尝试使用2个python脚本打开'.obj'文件,但是当我尝试编译项目时,它会抛出下一条错误消息:
UnicodeDecodeError: cp932' codec can't decode byte 0x81 in position 81: illegal multibyte sequence
我的代码如下所示:
CarString = 'volks.obj'
global car
global objects
obj = test3.object()
car = obj.load_obj(CarString)
objects.append(glGenLists(1))
类对象:
class object():
def __init__(self, obj = None):
if obj:
self.load_obj(obj)
#self.displaylist = self.crear_dl()
def load_obj(self, file):
with open(file, 'r') as obj:
data = obj.read()
在
data = obj.read()
部分是什么引发了我这个错误。我是Python的新手,所以我可以使用一些帮助来解决这个问题。感谢。
答案 0 :(得分:6)
您的volks.obj
文件可能是二进制数据,而不是文本。 open
命令中的默认数据类型是文本,因此您需要指定二进制文件。
尝试:
def load_obj(self, file):
with open(file, 'rb') as obj:
data = obj.read()
如果文件确实包含文本且不是系统的默认编码(通常为utf-8
,但查看错误消息,可能是cp932
),则必须在文件中指定文本编码。 open
致电。
with open(file, 'r', encoding=<encoding_type>) as obj: