我可以';清除';使用python复制/操作fits文件时的内存?

我可以';清除';使用python复制/操作fits文件时的内存?,python,memory,shutil,Python,Memory,Shutil,我正在处理大约300 x 200MB的fits文件,并试图编写一个代码,根据文件名将其复制到新目录中。下面是我的代码示例。我已将文件名写入blockarray中的列表(块)。然后我在每个块上循环并使用shutil复制fits文件 当我运行我的代码时,我的计算机一直在减速然后冻结。我环顾四周,找到了gc.collect(),但这似乎没有什么帮助。在复制每个文件后是否仍有清除内存的方法 for block in blockarray: for i in range(1,len(block))

我正在处理大约300 x 200MB的fits文件,并试图编写一个代码,根据文件名将其复制到新目录中。下面是我的代码示例。我已将文件名写入blockarray中的列表(块)。然后我在每个块上循环并使用shutil复制fits文件

当我运行我的代码时,我的计算机一直在减速然后冻结。我环顾四周,找到了gc.collect(),但这似乎没有什么帮助。在复制每个文件后是否仍有清除内存的方法

for block in blockarray:
    for i in range(1,len(block)):
        old_path = current_path + num + '/' + block[i]
        new_path = current_path + num + '_ex/' + block[0] + '/' + block[i]
        if not os.path.exists(new_path):
            shutil.copyfile(old_path, new_path)
            print "%s copied" %(block[i])

我不确定这是否有帮助,但您可以尝试一下:

以下是其文档中的一个示例:

我们有三个大数据集,a.txt、b.txt和c.txt,但只有其中的两个 将立即进入内存。如果我们在内存中有a.txt和b.txt,但是 现在想使用b.txt和c.txt,我们可以开始了 加载c.txt,但我们的系统会从a.txt和c.txt中逐出页面 (我们想要)和b.txt(我们不想要)

因此,让我们给系统一个提示,并从内存中退出a.txt,使 c.txt的存储空间:

$ vmtouch -ve a.txt Evicting a.txt

       Files: 1
 Directories: 0    Evicted Pages: 42116 (164M)
     Elapsed: 0.076824 seconds
p.S.Instagram,我就是这么知道的,但我自己还没有玩过