julia - Julia:readdlm 因前导空白而失败
问题描述
using DelimitedFiles
dat = readdlm("tmp.dat", ' ', Float64, '\n')
失败了
ERROR: LoadError: at row 1, column 1 : ErrorException("file entry \"\" cannot be converted to Float64")
当数据文件以空格(空白)开头时:
1 2
3 4
当我删除第一个空格时,Julia 程序就可以工作了。
是否可以选择readdlm
忽略前导空格,或者是否有同样简单的替代方法?
编辑:阅读下面的答案(谢谢!),我意识到我没有准确地表达我的问题。我没有编辑上述内容并因此移动球门柱,而是解释了我的情况。我有 ASCII 数据文件,其中的每一行可能以也可能不以未知数量的空格开头。(此外可能还有尾随空格。)
基本上,我想到的是用 C、Ruby、Fortran、gnuplot 等流行语言读取的“常用”ASCII 文件。. . 在所有这些语言中,ASCII 数据文件中的前导和尾随空格都被忽略了,单词间的额外空格也被忽略了。
我很惊讶readdlm
没有这样的阅读“模式”。. . .
解决方案
readdlm
skipstart
仅支持通过关键字参数跳过整行。因此,您所能做的就是使用seek
跳过流中的初始字节。
设置:
open("f.txt","w") do f;println(f," 1 2\n3 4");end
实际代码:
julia> open("f.txt") do f
seek(f,1)
readdlm(f, ' ', Float64, '\n')
end
2×2 Matrix{Float64}:
1.0 2.0
3.0 4.0
推荐阅读
- javascript - 放大 - 缩小 Javascript 背景上的问题
- c++11 - CMake & C++ - 在几个 git 子模块之间共享库的最佳方法是什么
- reactjs - 从 src/reducers 访问 public 文件夹中的 json 文件 react
- spring - spring 与 jlink、moditect 和 java 11
- abap - 在 html 查看器上隐藏地址/ url 栏
- vb.net - 未加权 GPA 计算器代码代码问题
- azure - Azure VM 规模集中的部署代理
- docker - Kubernetes - 机器上已经存在容器镜像
- java - 将 .m2 文件夹嵌入到 docker 镜像以创建基础镜像
- c# - 泛型函数和 cast ref 参数