2013-07-31 51 views
4

我有一个matplotlib的问题。虽然试图百倍与savefig()保存一些数据在一个循环中,它终于有以下错误结束:在循环中使用savefig()时IOError“打开的文件太多”

IOError: [Errno 24] Too many open files: 'test_421.png' 

我已经检查了我封闭每个figure保存之后,但它似乎并没有被有效。

下面是一个代码示例来说明我是如何得到这个错误:

def displayFig(input, display, savePath): 
    fig = plt.figure(figsize=(22, 5)) 
    # add some subplots, axis and colorbars... 
    if display: 
     plt.show() 
    else: 
     plt.savefig(savePath, dpi = 100) 
    plt.close(fig) 

for i, inp in enumerate(inpArray): 
    savePath = 'test_%d.png' % i 
    displayFig(inp, False, savePath) 

为什么提出这个错误?它可能是一个多线程问题或内存泄漏?

+1

也许只是提高限制。 – sk2212

+0

我不在Linux环境中,但您的猜测很有趣。由于我现在正在进行纯粹的研究,因此我的算法尚未优化,有时可能会很贪婪,特别是对于大数据集。 – Deeder

回答