【发布时间】:2017-04-12 11:30:23
【问题描述】:
我目前正在尝试通过删除不相关的数据来缩小大型列表的大小。我目前正在使用
with open("list.txt") as f_line:
for line in f_line:
Doing_things()
它目前正在使用较小比例的文件,但是当使用较大的主文件时,它会出现以下错误。
UnicodeDecodeError:“ascii”编解码器无法解码位置 3656 中的字节 0xe2:序数不在范围内(128)
是否有另一种方法可以将列表读入 python。该文件还具有超过 10000 个列表的单个数据点。 感谢您的帮助。
【问题讨论】:
-
文件大小不是问题。问题是,您打开文件时好像它包含 ASCII 文本,但实际上没有。
-
我认为问题不在于文件大小。我将此方法用于 30 GB 以上的文件,没有出现故障。文件本身可能存在问题。
-
首先“大”是一个相对术语。 10000 不是一个重要的数字。从您移植的内容来看,它似乎与文件大小或内存无关,而是编码问题。您应该先将这些行转换为 utf-8。
-
@ettanay:文件对象是可迭代的。
-
对于这个错误,可能不是文件大小引起的,可能是因为该行有一些奇怪的字符。