У меня есть большой ноутбук Mathematica, который периодически использует команды Print[]
для вывода сообщений о времени выполнения. Это единственный выход (кроме экспортированных файлов), который генерирует этот ноутбук. Есть ли способ автоматизировать экспорт этого вывода в файл .txt без необходимости перезаписывать команды Print[]
?
Экспорт Mathematica Print [] Выход в файл .txt
Ответ 1
В соответствии с документация, Print
выводится на $Output
, который представляет собой список потоков. Итак, в начале ноутбука
strm = OpenWrite["output.log"];
AppendTo[ $Output, strm ];
и в конце ноутбука
Close[strm];
Обратите внимание, что если выполнение прерывается до закрытия потока, вам нужно будет сделать это вручную. Кроме того, вышеуказанный код перезапишет предыдущие данные в "output.log", поэтому вы можете вместо этого использовать OpenAppend
.
Изменить: чтобы гарантировать, что Abort
будет вызван, рассмотрите возможность использования одного из методов, описанных здесь.
Ответ 2
Вам нужна команда PutAppend.