如何用Python编写大型文件

如何用Python编写大型文件,python,large-files,Python,Large Files,我试图读取和处理一个大文件中的每一行,然后将结果写入另一个文件。但是内存很快就用完了。还有其他好的解决办法吗?请帮忙 time_start = time.time() tt_X = [] D_tmp = [] with open(filenameRead, 'r') as fr, open(fileNameWrite,'wa') as fw: for line in fr: _, _, D_tmp = line.strip().split(',') #

我试图读取和处理一个大文件中的每一行,然后将结果写入另一个文件。但是内存很快就用完了。还有其他好的解决办法吗?请帮忙

time_start = time.time()
tt_X = []
D_tmp = []
with open(filenameRead, 'r') as fr, open(fileNameWrite,'wa') as fw:
    for line in fr:
        _, _, D_tmp = line.strip().split(',') #      
        #process each line
        D_tmp = np.array( D_tmp.split() ).astype(int).reshape(15,4,101,101)/215.   
        #D_tmp = np.reshape(D_tmp, () )/215.
        for i in range(15):
            tt_X.append(D_tmp[i,1:4,:-1,:-1])
        encoded = encoder.predict(np.array(tt_X)).flatten()
        fw.writelines(' '.join(encoded.astype(str)) +'\n')
        tt_X = []
        D_tmp = []
time_end = time.time()
print 'The elapsed time is ', time_end - time_start

我会先试试这个解决方案,这是一个上下文管理器声明,似乎你做到了。我建议在一个临时文件中写入500行左右的代码,并在继续之前读取这些代码,如果带有open…的
不起作用,则重复此操作欢迎使用堆栈溢出!您可以学习并创建一个示例。这使我们更容易帮助你。这段代码似乎没有任何会消耗内存的根本错误。但是如果没有MCVE,就真的无从谈起。您可以尝试在循环的每个步骤结束时手动运行垃圾收集器,或者显式删除当前行和其他变量。MemoryError发生在哪一行?