Okey,我想绘制一些存储在Julia中的数组文本文件(通常为表格文本文件)中的点。data=readdlm("FileInCase01.dat")如果文件不为空,我可以简单地检索值
。如果文件为空,我想要data=[]一个空数组和一个空图。该文件始终存在。所以isfile没有用。但有时它是空的。如果我尝试readdlm在空文件上使用,它将返回错误:
LoadError: at row 0, column 0 : ArgumentError("number of rows in dims must be > 0, got 0")
while loading In[21], in expression starting on line 2
这表明readdlm无法返回空数组。因此,我必须事先检查文件是否为空。那应该怎么做?
您可以使用以下方法检查文件大小filesize:
shell> cat test.csv
#
julia> filesize("test.csv")
2
Run Code Online (Sandbox Code Playgroud)
文件大小将为0空文件。但是请注意:即使“ test.csv”不为空,readdlm由于它仅包含注释字符,仍然会引发错误:
julia> readdlm("test.csv")
ERROR: at row 0, column 0 : ArgumentError("number of rows in dims must be > 0, got 0")
Run Code Online (Sandbox Code Playgroud)
因此,@ DanGetz关于try / catch块的建议可能是处理故障的更可靠的方法。