【问题标题】:written list data to file with newlines使用换行符将列表数据写入文件
【发布时间】:2013-01-23 14:09:39
【问题描述】:

我正在将一个文本文件读入一个列表,内容是:

blah
blah
blah

现在我正在尝试将列表数据写入文件,使其看起来与上面相同,我使用的是:

filewrite(File,L) ->
    {ok, S} = file:open(File, write),
    lists:foreach( fun(X) -> io:format(S, "~n",[X]) end, L),
    file:close(S).

但这会将所有内容打印在 1 行上,带有括号和语音标记...

【问题讨论】:

  • 我对Erlang一无所知,但这可能是Windows的线路策略引起的问题,“/r/n”而不仅仅是“/n”,请尝试用另一个编辑器打开文件或在 Ubuntu 中。必须说,我只是在尝试远射。
  • 列表是什么样的?你能举一个列表及其输出的例子吗?
  • 您的代码包含一个错误:调用io:format 的最后一个参数中的列表应该完全包含正确数量的格式字符串参数。在您的情况下,~n 不需要参数,因此最后一个参数应该是空列表[]。通常编译器会捕捉到这一点,并且总是在运行时捕捉到。

标签: erlang


【解决方案1】:

试试这个:

filewrite(File, []) ->
    ok;
filewrite(File, List) ->
    file:write_file(File, lists:foldl(fun(E, A) ->
        A ++ "\n" ++ E
    end, hd(List), tl(List))).

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-13
    • 2012-01-19
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    相关资源
    最近更新 更多