小编Jac*_*ine的帖子

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

我有一些 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
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到错误:

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
Run Code Online (Sandbox Code Playgroud)

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

系统信息:Mac OSX、优胜美地

Julia Version 0.4.0 …
Run Code Online (Sandbox Code Playgroud)

io macos julia

7
推荐指数
1
解决办法
331
查看次数

标签 统计

io ×1

julia ×1

macos ×1