给我写一个文件读出来是这样 [{"redis_host", "127.0.0.1"}, {"redis_port", "6379"}]的代码
时间: 2023-07-07 12:45:05 浏览: 149
好的,你可以使用 Erlang 中的 file 模块和 io 模块来读取文件内容,并将其转换为列表形式。下面是一个例子:
```
read_config_file(FilePath) ->
{ok, File} = file:open(FilePath, [read]),
Content = io:get_line(File, ''),
file:close(File),
ConfigList = parse_config(Content),
ConfigList.
parse_config(Content) ->
Trimmed = string:trim(Content, right),
Config = "[" ++ Trimmed ++ "]",
{ok, Tokens, _} = erl_scan:string(Config),
{ok, Parsed} = erl_parse:parse_term(Tokens),
Parsed.
```
上面的代码中,`read_config_file/1` 函数负责读取文件内容并调用 `parse_config/1` 函数来将字符串转换为列表。`parse_config/1` 函数首先去掉字符串末尾的空格,然后将其拼接成一个形如 `"[{key1, value1}, {key2, value2}, ...]"` 的字符串,再使用 Erlang 的扫描和解析模块将其解析成列表形式。你只需要将文件路径作为参数传递给 `read_config_file/1` 函数即可。
阅读全文