我是朱莉娅的新手.我正在寻找一种方法将50个文本文件中的值输入到数组中.文件以data-X.datX为整数1-50 的形式命名.文件格式如下(我无法控制格式):
garbage text
comment: words = I1, more words = I2
more garbage text
blah blah = F1
measurement = F2 F3 text
Run Code Online (Sandbox Code Playgroud)
其中I1和I2是整数和F1,F2和,F3是十进制形式的数字(例如12.345).我想将数据转储到数组中,例如,数组的第三个元素i1是I1文件中的值data-3.dat.
我如何在朱莉娅这样做?到目前为止,我发现的所有示例都处理由简单分隔符解析的数据文件,这不是这里的情况.
感谢@ColinTBowers和@AaronSheldon的帮助.这是我第一次使用正则表达式,我大量使用了维基百科页面.如果将来有人正在寻找示例代码,这就是我最终做的事情:
nf = 50 # number of files
nmbr = r"\-?[0-9]+\.?[0-9]*" # regex to find an integer or decimal number
i1 = zeros(Int64, nf)
i2 = zeros(i1)
f1 = zeros(Float64, nf)
f2 = zeros(f1)
f3 = zeros(f1)
for X in 1:nf
file = open("data-$(X).dat")
line = readlines(file)
extract(linenum, index=1) = matchall(nmbr, line[linenum])[index]
i1[X] = parse(Int64, extract(2,1))
i2[X] = parse(Int64, extract(2,2))
f1[X] = parse(Float64, extract(4))
f2[X] = parse(Float64, extract(5,1))
f3[X] = parse(Float64, extract(5,2))
close(file)
end
Run Code Online (Sandbox Code Playgroud)