我目前在Mac上使用python。
任务是从Web中抓取一些东西并将其存储在csv文件中。
我现在的问题是什么
如果我在for
循环中创建一个新对象,请说
for x in list:
y = classvar()
with open("test.csv") as f:
f.write(y)
其中classvar()包含多个词典。
经过大约1000次迭代后,我的mac崩溃说我没有足够的内存!
我只是想知道什么是最好的解决方案?
我应该在每个for循环结束时使用del y
吗?
答案 0 :(得分:1)
如果y
是一个很大的东西,除了循环的一次迭代之外不需要with
,你也应该使用for x in list:
with classvar() as y:
with open("test.csv", "w") as f:
f.write(y)
:
classvar()
__enter__
需要__exit__
和__exit__
方法,而{{1}}方法应该清理对象。