我知道这是一个常见的问题,但在 Mathematica 上搜索并没有得出明确的答案,所以我认为将其放在 StackOverflow 上会很有价值。
我一直在使用 Import 进行操作,但我意识到这可能非常低效,因为 Import 是一个重量级函数。
那么问题是,你能否改进以下代码:
slurp[filename_] := Import[filename, "Text"]
我知道这是一个常见的问题,但在 Mathematica 上搜索并没有得出明确的答案,所以我认为将其放在 StackOverflow 上会很有价值。
我一直在使用 Import 进行操作,但我意识到这可能非常低效,因为 Import 是一个重量级函数。
那么问题是,你能否改进以下代码:
slurp[filename_] := Import[filename, "Text"]
如果要一次性导入整个文件,我所知道的另一个选项是ReadList
。可以使用以下方式将其转换为返回整个文件作为单个字符串:
In[1]:= ReadList["ExampleData/source", Record, RecordSeparators -> {}]
Out[1]:= {"f[x] (: function f :)\r\ng[x] (: function g :)\r\n"}
Read
和 ReadList
的使用听起来非常明智。它们都接受数据类型列表(如结构体),你可能也会发现它们很有用。同样适用于它们的二进制对应项。 - Joshua Martell导入/导出
可以使用的文件格式,以便我使用的文件格式可以与内置类型平等对待。 - rcollyer