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

问题描述 投票:0回答:3

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

savefile = open("file.txt", "r+")
for i in savefile:
     #My code goes here
     savefile.write(i)
#end of loop
savefile.close()
python file memory save
3个回答
4
投票

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


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()

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而关闭文件

© www.soinside.com 2019 - 2024. All rights reserved.