这是一部分代码,全部代码的话太长了。
def main(rg1,rg2):
global Abins
Abins=[[[] for x in range(50)] for y in range(50)]
for ra in range(rg1,rg2):
for dec in range(180):
print ra, dec
if file_list[ra][dec] == []:
continue
else:
print len(file_list[ra][dec])
for b in file_list[ra][dec]:
for bins_ra in range(-4,5):
for bins_dec in range(-4,5):
for a in file_list[ra+bins_ra][dec+bins_dec]:
if a[4]<b[4]:
calcute(str(a[0]),str(b[0]),a[3],b[3],a[1],b[1],a[2],b[2])
print("start print")
for i in range(FenShu):
for j in range(FenShu):
file_save=open('./Abins_'+str(rg1)+'_'+str(rg2)+'_'+str(i)+'_'+str(j), 'w')
file_save.write(json.dumps(Abins[i][j]))
file_save.close()
del Abins
gc.collect()
for ra in range(80,140):
main(ra,ra+10)
这段代码的意思是,我每做一次 main 这个函数,都会往全局变量 Abins 数组中添加一些数据,由于全部做完之后这个数组会太大(远超过物理内存),所以每一次循环都输出一个文件。
但我的意图是输出完这个文件之后应该就释放了原来的 Abins 专用的内存了,不知道为什么执行的时候还是占用很多很多内存。 是做天文数据处理用的。 多谢!