[英]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.