尝试用python读取非常大的文本列表

尝试用python读取非常大的文本列表,python,list,Python,List,我目前正试图通过删除不可逆的数据来缩小一个大列表的大小。我目前正在使用 with open("list.txt") as f_line: for line in f_line: Doing_things() 它当前使用的是较小比例的文件,但当使用较大的主文件时,会出现以下错误 UnicodeDecodeError:“ascii”编解码器无法解码第3656位的字节0xe2:序号不在范围内(128) 是否有其他方法将列表读入python。此外,该文件还有超过10000个用于列

我目前正试图通过删除不可逆的数据来缩小一个大列表的大小。我目前正在使用

with open("list.txt") as f_line:
    for line in f_line:
       Doing_things()
它当前使用的是较小比例的文件,但当使用较大的主文件时,会出现以下错误

UnicodeDecodeError:“ascii”编解码器无法解码第3656位的字节0xe2:序号不在范围内(128)

是否有其他方法将列表读入python。此外,该文件还有超过10000个用于列表的单个数据点。
感谢您的帮助。

原因可能是对文件编码的“误解”。python解释器需要一个编码为ascii的文本文件,但实际上它编码为unicode或latin1。如果它包含重音字符,它肯定不是ascii文件

您使用哪个版本的python?Python 2对待文本的方式与Python 3不同

如果不清楚,我通常使用记事本++检查文本文件中使用的编码


一旦知道使用了哪种编码,您就可以像前面提到的那样指定它,并将open('list.txt',encoding='utf-8')作为f_行:

文件的大小不是问题。问题是,您打开文件时,好像它包含ASCII文本,但它不包含ASCII文本。我认为问题不在于文件大小。我对30 GB以上的文件使用了这种方法,没有任何问题。文件本身可能有问题。首先,“大”是一个相对的术语。10000不是一个重要的数字。但从您移植的内容来看,它似乎与文件大小或内存无关,而是编码问题。您应该先将这些行转换为utf-8。@ettanay:文件对象是可编辑的。对于错误,它可能不是由文件大小引起的,可能是因为该行有一些奇怪的字符。感谢它现在的工作:)我使用的是Python 3,我想它在处理文件中的表情时感到困惑。