【发布时间】:2016-06-24 11:36:28
【问题描述】:
我是 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
其中I1 和I2 是整数,F1、F2 和F3 是十进制形式的数字(例如12.345)。我想将数据转储到数组中,例如,数组i1 的第三个元素是文件data-3.dat 中I1 的值。
我将如何在 Julia 中执行此操作?到目前为止,我发现的所有示例都处理由简单分隔符解析的数据文件,这里不是这种情况。
【问题讨论】:
-
我认为您的 Fortran 示例是不必要的。
-
文本文件的大小是否足够小,您可以将整个内容读入内存并通过在每行开头搜索适当的字符串来解析它?
-
@ColinTBowers 是的,每个文件的大小约为 1 KB,因此应该可行。这是我在 Julia 的第一个项目,所以如果你能提供一些框架代码来解释“搜索合适的字符串”的语法,那将非常感激。
-
使用
fid1 = open("filePath") ; x = readlines(fid1) ; close(fid1)读取文件。当循环遍历这些行时,看起来您可以使用contains(line, '=')来找到合适的行,然后明智地使用split应该可以让您到达那里。无论如何都没有效率,但它会完成工作。 ps 正则表达式可能是解决这个问题的“正确”方法,但我确实知道它们的初始学习曲线是陡峭的。我倾向于自己避免使用它们,即使我知道我应该使用它们:-)