从Elixir中的文本文件中提取列表

时间:2017-03-06 19:59:43

标签: list file elixir

我有一个奇怪的问题,但是我已经阅读了各种Elixir文档和教科书,但却没有提出任何答案。

我有一组.txt文件,每个文件都包含列表格式的数据。因此,.txt文件的内容看起来像(包括括号):

[a, [a, b], c, [d, e, f], g]

如果我将此文件读入Elixir函数,它将被读取为字符串。如果我使用String.tolist,它将在新列表中包含括号作为条目。但有没有办法将其作为列表读取,格式化就像在文件中一样?显然,我可以轻松编写一个使用Regex逐字符读取数据的函数,每次找到一个左括号时开始一个新列表,每次找到一个结束括号时都会结束列表。然而,这将是非常耗费资源的,并且看起来非常像Elixirian。"

Elixir是否有任何可识别括号的内置函数或命令,并将其格式化为列表而无需逐个字符地读取数据?或者,比我聪明的人知道更有效的方法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

如果您文件中的文字是有效的elixir代码,那么您可以使用Code.eval_string,除非字符串完全引用 Elixir时尚,它可能无法奏效。

即。您的示例数据必须如下所示:

["a", ["a", "b"], "c", ["d", "e", "f"], "g"]

您可以构建一个解析器来完成所有引用,但到那时你就是 已经到了一个真正的解析器的一半。该字符串必须由某些东西解析,使用内置的Elixir解析器只涉及到你 写更少的代码。