我在python 3.2中有那个代码
infile = self._handle_bom(infile)
for line in infile:
if (not line) or (line[-1] not in ('\r', '\n', '\r\n')): # <- error here
continue
for end in ('\r\n', '\n', '\r'):
if line.endswith(end):
self.newlines = end
break
break
有一个错误:
TypeError: 'int' object is not subscriptable
为什么 python 将 line 视为 int?
编辑: 好的,看起来我的东西更复杂。
_handle_bom
是一个处理 BOM 的类函数。我不熟悉 chartypes 但遵循所有其他方法,似乎最终 infile 被 .decode(不同类型的东西)解码返回。