首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何避免这个太多打开的文件错误?

如何避免这个太多打开的文件错误?
EN

Stack Overflow用户
提问于 2018-05-30 01:15:13
回答 1查看 0关注 0票数 0

我编写了一个代码,将输出保存到一个文本文件和两个数字中。我重复了100次。我知道错误IOError: [Errno 24] Too many open files。为什么每次迭代时我都要关闭文本文件和数字,但我还是会得到这个错误?

每个进程打开的最大文件,然后我将限制更改为ulimit -n 1200而且很管用。但是,我仍然想了解为什么即使关闭输出文件,代码也会中断。我的代码如下所示:

代码语言:txt
复制
import matplotlib.pyplot as plt

for i in range(100):
    rdme = open('README_{0}'.format(i), 'w')

    rmde.write(results)

    # figure 1
    fig, axes = plt.subplots(2, 1, sharex=True, figsize=(8, 9))
    ax[0].plot(xa, ya)
    ax[1].plot(xb, yb)
    plt.savefig(plot1)
    plt.close()

    # figure 2
    plt.plot(x2, y2)
    plt.savefig(plot2)
    plt.close()

    rmde.write('code finished successfully')

    rdme.close()
EN

回答 1

Stack Overflow用户

发布于 2018-05-30 10:15:49

我建议使用with因为由于GC文件关闭速度可能很慢。

我可能会在结尾加个睡眠,然后用lsof要了解哪些文件是打开的,如果它们不是我所期望的文件,请从那里开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档