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

Python saving data inside Memory? (ram)

我是 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 在您调用 .close().flush() 或达到指定的缓冲区大小之前不会写入文件。这个问题可能对你有帮助:How often does python flush to a file?

正如@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()

有一个更好的解决方案,以 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