Каков наилучший способ поместить содержимое файла в строку в Mathematica? - PullRequest
3 голосов
/ 15 октября 2010

Я знаю, что это часто спрашивают, но поиск в Google не дает однозначного ответа для Mathematica, поэтому я подумал, что было бы полезно иметь это в StackOverflow.

Я делал это с помощью Import, но этоМне пришло в голову, что это может быть ужасно неэффективно, потому что Import - такая тяжелая функция.

Итак, вопрос в том, можете ли вы улучшить следующее:

slurp[filename_] := Import[filename, "Text"]

1 Ответ

2 голосов
/ 15 октября 2010

Для импорта всего файла за один раз, единственная известная мне опция - ReadList.Можно вернуть весь файл в виде одной строки следующим образом: 1 :

In[1]:= ReadList["ExampleData/source", Record, RecordSeparators -> {}]
Out[1]:= {"f[x] (: function f :)\r\ng[x] (: function g :)\r\n"}

(Примечание: \ r и \ n фактически интерпретируются в выводе, но я оставилих для удобочитаемости.) Ключ должен удалить любой RecordSeparators.Но, честно говоря, я не думаю, что это вас что-то спасет, и Import[ <file>, "Text"] легче написать.По правде говоря, я использую Read[ <file>, String], когда у меня есть данные в формате, который не охватывается спецификаторами типов, используемыми в Read и ReadList, и строю пользовательскую функцию вокруг этой операции для загрузки всех данных.


  1. Это можно найти в учебнике Чтение текстовых данных .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...