gpt4 book ai didi

macos - Julia:限制使用 readdlm 时打开的文件数

转载 作者:行者123 更新时间:2023-12-03 13:40:23 24 4
gpt4 key购买 nike

我有一些 Julia 代码,我在其中使用 readdlm 函数打开了大量文件。我的代码如下所示:

for file in large_list_of_files
open(file) do filehandle
data = readdlm(filehandle)
end
#Do some data processing and store results
end

当我运行它时,我收到错误:
LoadError: SystemError: opening file <filename>: Too many open files
while loading In[28], in expression starting on line 28

in open at /Applications/Julia-0.4.0.app/Contents/Resources/juli/lib/julia/sys.dylib
in open at iostream.jl:102
in open at iostream.jl:112
in process_data at In[13]:11
[inlined code] from In[28]:31
in anonymous at no file:30

这是没有意义的,因为每次循环时 do 块都应该关闭文件,因此文件应该只在 do 块中打开。另外,如果有人知道 Julia 中的一个函数可以计算打开的文件数,那就太好了:)

系统信息:
Mac OSX,优胜美地
Julia Version 0.4.0
Commit 0ff703b* (2015-10-08 06:20 UTC)
Platform Info:
System: Darwin (x86_64-apple-darwin13.4.0)
CPU: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
LAPACK: libopenblas64_
LIBM: libopenlibm
LLVM: libLLVM-3.3

此外,我正在使用带有 Julia 0.4.0 内核的 Jupyter 运行此代码,但我怀疑这会产生什么不同。

编辑:我在 Github 上注意到了这个问题,ViralBShah 说问题已解决,但我认为不是。

https://github.com/JuliaLang/julia/issues/8891

编辑 编辑:我尝试使用 gc() 函数,但也不能解决问题。

最佳答案

好像解决了:
测试下

  • MacOS HighSierra 10.13.6
  • Julia 1.5.1 版
  • using DelimitedFiles

    # 329571 files:
    for file in split(String(read(a)),"\n")[1:end-1]
    open(file) do fh
    try readdlm(fh)
    catch ff
    end
    end
    end

    关于macos - Julia:限制使用 readdlm 时打开的文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34394361/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com