Python在内存中保存数据? (内存)

时间:2015-10-21 21:16:01

标签: python file memory save

我是Python新手,但我还不知道。 我在for循环中有一个基本程序,它从站点请求数据并将其保存到文本文件中 但当我在我的任务管理器内部检查时,我发现内存使用量只会增加?在长时间运行时,这对我来说可能是一个问题。 Python的标准是这样做还是可以更改它? 这是程序基本上是什么

savefile = open("file.txt", "r+")
for i in savefile:
     #My code goes here
     savefile.write(i)
#end of loop
savefile.close()

3 个答案:

答案 0 :(得分:4)

在您调用.close().flush()或直到达到指定的缓冲区大小之前,Python不会写入文件。这个问题可能会对您有所帮助:How often does python flush to a file?

答案 1 :(得分:3)

正如@Almog所说,Python不会立即写入文件。因此,您写入文件的每一行都会存储到RAM中,直到您使用savefile.close(),它会刷新内部缓冲区并将所有内容写入文件。这可以解释额外的内存使用情况。

尝试将循环更改为:

savefile = open('file.txt', 'r+')
for i in savefile:
    savefile.write(i)
    savefile.flush() #flushes buffer, saving RAM
savefile.close()

答案 2 :(得分:0)

有一个更好的解决方案,以pythonic方式解决:

with open("your_file.txt", "write_mode") as file_variable_name:
    for line in file_name:
        file_name.write(line)
        file_name.flush()

此代码刷新每一行的文件,执行后由于with-Statement而关闭文件