处理大文件时python中的内存错误

时间:2017-07-10 06:39:30

标签: python-2.6

输入:带有序列文件的12GB左右的大文件,带〜分隔符,我想在每10次出现后用新行破坏。

我试过

with open ("file.txt") as f:
    for line in f:
        x = line.count("~")
        y = line.split("~")
        s = ['Ç'.join(x) for x in [y[i:i + 10] for i in xrange(0, len(y), 10)]]
with open ("output.txt","w") as outfile:
    outfile.write("~\n".join(s))

虽然line.split('~')我遇到内存错误。

我尝试使用y = [line.split('~') for line in f],但没有使用相同的错误。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

for line in f:

将尝试将所有文​​件加载到RAM中

使用xreadline迭代器逐行加载文件:

for line in f.xreadlines():