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不能返回一个空数组。所以我必须事先检查文件是否为空。应该怎么做?
答案 0 :(得分:4)
您可以使用filesize
检查文件大小:
shell> cat test.csv
#
julia> filesize("test.csv")
2
空文件的文件大小为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")
所以@ DanGetz对try / catch块的建议可能是处理失败的更强大的方法。