gpt4 book ai didi

arrays - 在 Julia 中解析文本文件

转载 作者:行者123 更新时间:2023-12-02 06:39:50 26 4
gpt4 key购买 nike

我对 Julia 来说是全新的。我正在寻找一种将 50 个文本文件中的值输入到数组中的方法。这些文件以 data-X.dat 的形式命名,其中 X 是 1-50 之间的整数。这些文件采用以下格式(我无法控制格式):

garbage text
comment: words = I1, more words = I2
more garbage text
blah blah = F1
measurement = F2 F3 text

其中 I1I2 是整数,F1F2F3 > 是十进制形式的数字(例如 12.345)。我想将数据转储到数组中,例如,数组 i1 的第三个元素是文件 data-3.dat< 中 I1 的值.

我该如何在 Julia 中做到这一点?到目前为止,我发现的所有示例都涉及通过简单分隔符解析的数据文件,但这里的情况并非如此。

最佳答案

感谢@ColinTBowers 和@AaronSheldon 的帮助。这是我第一次使用正则表达式,我大量使用了 Wikipedia他们的页面。如果将来有人正在寻找示例代码,这就是我最终所做的:

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

关于arrays - 在 Julia 中解析文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35902702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com