python - 文件中的单行太大?

标签 python file

在 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/

相关文章:

java - 创建并写入文件

python - 作为函数参数的 Pandas DataFrame - Python

python - 请求在 Accept header 中添加 python 库

c++ - 为什么当我从文件加载它的序列化时,我的充满结构的 vector 的大小如此之大?

java - 如何更新文件而不丢失以前写入的信息?

c++ - 将文件夹变成单个文件而不压缩它?

python - __hash__ 在 Python 3.2 中是如何实现的?

python - 在Python中检查时间是否位于开始时间和结束时间之间的最有效方法

python - python 中的轴选项

c++ - 如何在C++中使用<文件系统>访问相对父目录