繁体   English   中英

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

在调用.close().flush()或达到指定的缓冲区大小之前,Python不会写入文件。 这个问题可能会对您有所帮助: python多久刷新一次文件?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM