【问题标题】:Python: Too many open files errorPython:打开文件过多错误
【发布时间】:2015-01-08 13:19:39
【问题描述】:

我正在处理一项任务,我需要从 150 个文件中读取数据并对其进行操作。这需要执行大约 73 次。

count = 0    
for date in daterange(start, end):
        #Adjusting for correct format
        day = date.strftime("%d")
        month = date.strftime("%m")

#appending files
filenames.append(glob.glob('*'+month+day+'filenamehere.nc'))

#Opening files
for i in filenames[count]:
        megadatalist.append(netCDF4.Dataset(i,'r'))

count += 1

if count % interval == 0:
    ~calculation stuff here

完成所需操作后,我尝试清空列表并关闭数据集:

for i in megadatalist:
    i.close
megadatalist = []

但是,在运行了大约 34 个由 150 个文件组成的数据集后,我得到了一个运行时错误:打开的文件太多

我没有正确关闭文件吗?或者发生了什么,任何帮助表示赞赏!

【问题讨论】:

    标签: python file runtime-error file-handling


    【解决方案1】:

    你有错别字

    for i in megadatalist:
        i.close
    

    应该阅读

    for i in megadatalist:
        i.close()
    

    【讨论】:

    • 嗯,这很尴尬。这可能就是它,我想知道为什么它没有作为错误出现。现在重新运行脚本以检查它是否有效!
    • 想知道为什么解释器甚至没有在那个变量上眨眼.. i.close
    • 为什么要这样?引用一个函数而不调用它并不是错误。
    猜你喜欢
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 2013-05-03
    • 2013-08-19
    • 2016-02-08
    相关资源
    最近更新 更多