在 python 中,我正在读取一个大文件,我想将每一行(经过一些修改后)添加到一个空列表中。我只想对前几行执行此操作,所以我这样做了:
X = []
for line in range(3):
i = file.readline()
m = str(i)
X.append(m)
然而,出现了一个错误,并表示该行存在 MemoryError
i = file.readline()
.
我该怎么办?即使我将范围设置为 1 也是一样的(尽管我不知道这对线有何影响,因为它在循环内)。
如何获取错误代码?我正在迭代,但我无法将它变成二进制文件,因为该文件不仅仅是整数 - 还有小数和非数字字符。
txt 文件是 5 gigs。
有什么想法吗?
最佳答案
filehandle.readline()
通过换行符换行 (\n
) - 如果你的文件有巨大的行,或者根本没有换行,你会需要找出一种不同的分块方式。
通常,您可能会以 block 的形式读取文件并一个接一个地处理这些 block 。
你能想出如何分解文件吗?例如,您能否一次只读取 1024 个字节,并使用该 block ?
如果没有,清理文件的格式通常比设计复杂的阅读器更容易。
关于python - 文件中的单行太大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46084606/